ouyangting_2000 发表于 2012-05-11 03:00

问一个关于set echo on的问题

我做了一个perl脚本,用意是检索数据库schema信息,并自动连接数据库执行sql脚本。在连接oracle数据库时我用的是命令行模式,已经将echo设置为on,但是在执行脚本的时候发现sql语句并没有显示出来,用手动连接命令行试了一下,发现set echo on是效果的,但是一放到脚本里就失效了,这是为啥?有哪位大大帮我解答一下,万分感谢。
perl脚本连接数据库部分如下:
open (SQL, "|sqlplus -S /nolog") or die "error: $!";
print SQL "connect $schema/$pwd"."@"."$tns\n";
print SQL "set echo on\n";
print SQL "start $sql_file\n";




脚本跑下来的结果如下:
Do you want to deploy this CR?(Y/N)
y
Please wait...
已连接。

已更新179行。


已创建 1 行。


提交完成。

手动在命令行模式下设置echo的结果如下:
SQL> set echo on
SQL> @CR_rollback_MASPOS_20120510_01.sql
SQL> -- SCHEMA:maspos
SQL> update MASPOS.T_TERM_PARAINTI set EXP_DATE=to_date(to_char(CREATE_TIME+7, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss');

已更新179行。

SQL> insert into maspos.t_maspospatch(APPVERSION,PATCHNO,CREATEDATE,FILENAME) values('1.0.1','199',SYSDATE,'CR_rollback_MASPOS_20120510_01.sql');

已创建 1 行。

SQL> commit;

提交完成。


doni 发表于 2012-05-12 13:20

-s拿掉

ouyangting_2000 发表于 2012-05-14 09:37

doni 发表于 2012-05-12 13:20 static/image/common/back.gif
-s拿掉

thx~~~~:D

zhlin0054 发表于 2012-08-12 22:39

perl不懂哦,好像挺偏门的哦
页: [1]
查看完整版本: 问一个关于set echo on的问题