51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2928|回复: 3
打印 上一主题 下一主题

[求助] 用vbscript/javascript 调用sqlplus命名

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-16 18:04:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已知:
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 -s  qtp/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!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-10-16 18:30:29 | 只看该作者
转义一下看看 \
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-10-19 10:31:26 | 只看该作者
我明白你要我用转义字符的意思,因为“@”在批处理下是命令不回显的意思,所以我的d.txt文件里面是没有我的输出命令的。
我用转义字符:“、”,“^”都试过,还是不行的
还有没有其他的建议??
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-10-20 17:26:20 | 只看该作者
这个问题通过另外的一种方法解决了,就此吧解决方法列出来:
修改:\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 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 03:45 , Processed in 0.099661 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表