【发布时间】:2009-12-09 21:30:27
【问题描述】:
我有以下批处理脚本:
sqlplus ms/ms@orcl < drop.sql
sqlplus ms/ms@orcl < create.1.0.sql
当我在 Windows 资源管理器中双击 bat 文件并运行它时,它可以正常工作。
但是当我在 DOS 提示符下输入命令名时,我得到一个错误:
C:\>create.bat
C:\>sqlplus ms/ms@orcl 0<drop.sql
The handle is invalid.
C:\>sqlplus ms/ms@orcl 0<create.1.0.sql
The handle is invalid
有什么想法吗?
更新:更改为使用@ 而不是<。这解决了错误,但现在脚本只执行第一个文件,然后将您留在SQL> 提示符处。要执行第二个文件,您必须在提示符下键入exit,然后第二个文件运行。不知道如何让两个文件都执行。 ??
【问题讨论】:
-
看起来您从命令行运行的批处理脚本有一些额外的 0。 0 是无效句柄,因此是错误消息。使用 shoover 的解决方案 - @ 是 sqlplus 的一个参数,告诉它运行给定的 sql 脚本。
-
试过了,不是运气。更新帖子。
-
在 Jason 的回答下方查看我的评论。
标签: oracle batch-file dos sqlplus