- 论坛徽章:
- 0
|
我做了一个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;
提交完成。
|
|