PostRank

2007/03/24

获取執行中的SQL內容

SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '&pid'))
ORDER BY piece ASC
/

如何从SQL*PLUS向shell传递变量

如何从SQL*PLUS向shell传递变量

作者:eygle 发表于 2005-04-11 23:23 最后更新于 2006-12-11 12:14 | English Version
版权声明:可以任意转载,转载时请务必以超链接形式标明文章 原始出处和作者信息及 本声明
http://www.eygle.com/archives/2005/04/eciosqlplusieos.html


 论坛上有人问这个问题,说无法通过sqlplus向shell传递变量,写了一个简单的脚本进行折中处理,供参考:

[oracle@jumper oracle]$ cat a.sh sqlplus -S "/ as sysdba" << ! set heading off col today noprint column today new_val dat select to_char( sysdate, 'yyyy-mm-dd') today from dual; host echo 'today is ' &dat exit; exit; ! [oracle@jumper oracle]$ ./a.sh  today is  2005-04-11  [oracle@jumper oracle]$  
itpub上的Toms_zhang朋友提供了另外一种方法:
[oracle@jumper oracle]$ more a.sh

#!/bin/ksh
VALUE=`sqlplus -silent "/ as sysdba" < < END
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v\\\$log_history;
exit;
END`

if [ -z "$VALUE" ]; then
echo "No rows returned from database"
exit 0
else
echo "Max Sequence Number: $VALUE"
fi


[oracle@jumper oracle]$ ./a.sh
Max Sequence Number:        17
 
 

我有另一种类似的需求,在sqlplus中执行一段PL/SQL后,得到一个变量,然后再把这个变量的值用host传给shell,上述的两种方式就不适用了。请问有其他方式吗?

Posted by: ArseneFang at June 14, 2005 2:30 PM

To ArseneFang;

可以这样写:

SQL> col inst new_val instance_name
SQL> select instance_name inst from v$instance;

INST
----------------
conner

SQL> host echo &instance_name
conner

Posted by: eygle at June 14, 2005 10:06 PM

如何解决Form中不能导出数据和不能输出报表的问题

===========================================================
如何解决Form中不能导出数据和不能输出报表的问题
作者: moonsoft(http://moonsoft.itpub.net)
发表于: 2007.03.23 16:26
分类: EBS , forms
出处: http://moonsoft.itpub.net/post/15182/274364
---------------------------------------------------------------
Metalink推荐的解决方法。
如何解决Form中不能导出数据和不能输出报表的问题
1、以root用户登陆
2、切换到orporcli用户 #su orporcli
3、启动数据库
$/application/porcli/oracle/product/920/appsutil/scripts/PORCLI_gzebs/addbctl.sh start
4、启动数据库监听 $/application/porcli/oracle/product/920/appsutil/scripts/PORCLI_gzebs/addlnctl.sh start PORCLI
5、退出oraporcli用户
$exit
6、切换到apporcli用户
#su apporcli
7、启用环境变量
$cd /application/porcli/applmgr/1159 $. ./APPSPORCLI_gzebs.env (gzebs是当前主机名,如果是测试服务器则是. ./APPSPORCLI_gzdemo.env)
8、relink应用程序
$adrelink.sh force=y "fnd FNDWRR.exe"
9、adjbuild.sh $COMMON_TOP/util/jinitiator $COMMON_TOP/util/jinitiator/jinit11816.exe 1.1.8.16
10、启动apps
$cd /application/porcli/applmgr/common/admin/scripts/PORCLI_gzebs $./adstrtal.sh apps/simple4u
上述步骤为Metalink推荐的解决方法。