从命令行使用SQL * Plus

时间:2014-03-13 10:49:11

标签: sql oracle sqlplus

我有一个小的vbscript来加载数据并使用sqlldr和sqlplus处理它。我有两个关于sqlplus用法的问题:

1)我可以在不使用.sql脚本文件的情况下执行存储过程吗? 例如sqlplus user / pass @ server @exec proc_myname

2)我可以在共享的UNC路径上使用.sql脚本文件吗? 例如sqlplus user / pass @ server @ \ server \ path \ script.sql

我试过玩游戏,目前正在通过使用本地临时目录存储sql文件解决问题。但我很好奇是否有另一种/更好的方式。

由于

2 个答案:

答案 0 :(得分:1)

  

我可以在不使用.sql脚本文件的情况下执行存储过程吗?

是。我不太了解VisualBasic,但基本原则是你为sqlplus创建子进程然后通过stdin发送命令(即你的脚本写入子进程的标准输入)。

  

我可以在共享的UNC路径上使用.sql脚本文件吗?

如果路径正确,则应该有效。您也可以尝试I / O重定向:

sqlplus user/pass@server < \\server\path\script.sql

此方法的缺点是错误消息不包含.sql脚本名称。

答案 1 :(得分:0)

关于你的第二个问题:

从 UNC 路径运行脚本对我有用,无需驱动器映射或 I/O 重定向:

sqlplus /nolog "@\\server\path\file.sql"

sqlplus 12.2.0.1版
显然,引号和“@”很重要。