我有一个尝试使用SQLPlus在PowerShell中运行的测试SQL脚本。脚本的路径如下所示:
@C:\&DI\test.sql
运行此命令时,会提示我
Enter value for di:
如果我输入&DI,则一切正常。我宁愿避免任何提示。我尝试了许多不同的引号组合,但没有任何运气。有人有什么想法吗?
答案 0 :(得分:4)
您看到的是SQL * Plus提示符,而不是PowerShell提示符。
SQL * Plus默认情况下使用与号来标识substitution variables。当它看到@C:\&DI
时,它将寻找一个定义为DI
的替代变量,因为找不到变量,ir提示您输入变量。
您可以更改其使用的字符,或仅通过发出以下命令来禁用该功能:
set define off
在您的@
运行命令之前。
SQL> @C:\&DI\test.sql
Enter value for di: xyz
SP2-0310: unable to open file "C:\xyz\test.sql"
SQL> set define off
SQL> @C:\&DI\test.sql
SP2-0310: unable to open file "C:\&DI\test.sql"
SQL>