希望这是一个简单的问题。我想编写一个shell脚本,调用SQL脚本在Rocket UNIVERSE数据库中进行一些查询。我是从服务器命令行(数据库所在的同一台机器)执行此操作的。
在SQLSERVER中,我可能会执行以下操作:
sqlcmd -S myServer\instanceName -i C:\myScript.sql
在Oracle这样:
SQL>@/dir/test.sql
在紫外线中,我无法弄清楚:
uvsh ??? some.sql file
所以在test.sql文件中我可能会有以下内容:
"SELECT ID, COL1, COL2 FROM PRODUCT WHERE @ID=91;"
"SELECT ID, COL1, COL2 FROM PRODUCT WHERE @ID=92;"
"SELECT ID, COL1, COL2 FROM PRODUCT WHERE @ID=93;"
那么可以这样做,还是我以错误的方式解决这个问题?也许一种不同的方法更优化? - 谢谢!
答案 0 :(得分:0)
您可以使用以下命令将命令列表发送到UniVerse进程。
C:\U2\UV\HS.SALES>type test.sql | ..\bin\uv
您不需要'"'围绕你描述的每个陈述。
对于HS.SALES帐户,以下SQL命令应该起作用:
SELECT @ID, FNAME, LNAME FROM CUSTOMER WHERE @ID='2';
SELECT @ID, FNAME, LNAME FROM CUSTOMER WHERE @ID='3';
SELECT @ID, FNAME, LNAME FROM CUSTOMER WHERE @ID='4';
请注意,这可能无法执行您想要的操作,这会将结果显示为标准输出。此外,以这种方式向UniVerse发送命令时应该小心。如果所有UniVerse许可证都在使用中,则uv命令将失败,并且SQL命令将永远不会执行。