ITPub博客

首页 > 数据库 > Oracle > Oracle调用dos批处理命令

Oracle调用dos批处理命令

原创 Oracle 作者:echocai 时间:2007-02-02 15:59:17 0 删除 编辑

今天突然需要在存储过程里面调用外部的dos命令,找了半天都没有找到,等到自己试验成功了,发现其实简单得叻不好说话了。就像考试时记不起英语单词一样,考场绞尽脑汁都记不起来,考完打开书发现原来这么简单。

[@more@]

Oracle调用dos命令用host,在unix里面缩写“!”,在NT里面缩写就是“$”,后面加你要的单独dos命令或者一个包含dos批处理命令bat文件的文件名(记住,因为当前目录是启动sqlplus时的目录,调用批处理的bat文件最好加上全局路径)。开始看到一个哥们说调用单dos命令成功了,方式是host +‘command’,估计他是成功了,但是告诉别人的方式却有误解,因为我加了个单引号死活不成功,所以写出来的东西先考虑下别人会不会误解。经我测试,加双引号或不加引号都是可以的。

单命令的就不说了,直接调用就是。下面是我做的批处理调用。
成功:
SQL> $E:nihao.bat
SQL> $ E:nihao.bat
SQL> host E:nihao.bat
SQL> $"E:nihao.bat"
SQL> $ "E:nihao.bat"
SQL> host "e:nihao.bat"

失败:
SQL> $ 'E:nihao.bat'
SQL> $'E:nihao.bat'
SQL> host 'e:nihao.bat'

host与简写还有一个区别就是动态调用参数,语法为:host &&|&。示例如下:
(1) 固定参数
define vc_cmd = 'E:nihao.bat'
host &&vc_cmd
(2) 可由dual动态生成
column vc_cmd new_value vc_cmd
select 'E:nihao.bat' vc_cmd from dual;
host &&vc_cmd
(3) 手动输入
host &vc_cmd

上面的试验,简写“$”后面加不加空格都可以运行,但是host后面无论是固定还是参数形式的,都要加个空格。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8796021/viewspace-897032/,如需转载,请注明出处,否则将追究法律责任。

上一篇: EchoCai的意思
下一篇: 低调
请登录后发表评论 登录
全部评论

注册时间:2009-12-07

  • 博文量
    4
  • 访问量
    7210