用vbscript/javascript 调用sqlplus命名
已知:1、oracle 的spool可以把命令窗口上的输出写入指定的文件.
2、e:\temp\c.sql文件的内容为:
set echo on;
spool e:\temp\obss.log;
@e:\temp\a.sql;
@e:\temp\b.sql;
spool off;
quit;
quit;
quit;
3、在plsql里面执行@e:\temp\c.sql,写入obss.log文件里面的结果为:
@e:\temp\a.sql;
insert into aaa select * from tb_user;
28 rows inserted
commit;
Commit complete
@e:\temp\b.sql;
insert into bbb select * from tb_case;
526 rows inserted
commit;
Commit complete
spool off;
问题来了:
我在VBS里面用:WshShell.Run "%comspec% /c sqlplus -sqtp/qtp@ADMIN @e:\temp\c.sql ",0, False ,返回的结果为:
已创建28行。
提交完成。
已创建526行。
提交完成。
我并不是在意中英文的问题,我关注的是为什么少了“@e:\temp\a.sql;”和”@e:\temp\b.sql;“这两条内容
高人们,有没有办法使得vbs生成的LOG日志里面有显示我输入的命令“@e:\temp\a.sql;”和”@e:\temp\b.sql;“呢??
help!!!!! 转义一下看看 \ 我明白你要我用转义字符的意思,因为“@”在批处理下是命令不回显的意思,所以我的d.txt文件里面是没有我的输出命令的。
我用转义字符:“、”,“^”都试过,还是不行的
还有没有其他的建议?? 这个问题通过另外的一种方法解决了,就此吧解决方法列出来:
修改:\temp\c.sql文件的内容为:
set echo on;
spool e:\temp\obss.log;
exec dbms_output.put_line('@e:\temp\a.sql');
@e:\temp\a.sql;
exec dbms_output.put_line('@e:\temp\b.sql');
@e:\temp\b.sql;
spool off;
quit;
quit;
"exec dbms_output.put_line('@e:\temp\b.sql');"就是输出一段引号内的文本,虽然方法有点笨同时加大了系统的负担,不过好在能够解决问题。特此记录一下。
页:
[1]