我有一个plsql脚本,没有正确终止:
create or replace package mypackage
... (no semicolon/forward slash at the end)
脚本在windows powershell上用sqlplus(12.1)执行:
sqlplus user/pass@host @my_not_properly_ended_file.pks
我希望sqlplus以退出代码1和错误消息终止,但它会提示输入。
如何在这种情况下收到错误消息并退出代码?
编辑:解决方案也应该使用不以分号结尾的dml语句。
答案 0 :(得分:2)
您可以使用shell重定向而不是code
:
#include <iostream>
using std::cout;
using std::cin;
using std::ofstream;
using std::endl;
void HelloWorld() {
ofstream outfile ("html1.html");
outfile << "<html> " << endl;
outfile << " <head> <title> Template Hello World </title> </head>" << endl;
outfile << " <body> <h1> Hello World! </h1> </body> " << endl;
outfile << "</html> " << endl;
outfile << "// Template HTML 2018 " << endl;
cout << "Created Succesfuly! Directory: Program's folder " << endl;
outfile.close();
}
这也可以防止它卡住&#39;如果脚本没有以@
命令结束。
但是,在任何一种情况下,它都不会向shell返回错误代码。就SQL * Plus而言,您将不完整的语句放入其缓冲区但从未尝试执行它(因为没有斜杠);而且由于它没有运行,它没有错误。因此,设置sqlplus user/pass@host < my_not_properly_ended_file.pks
或其他任何不会产生任何影响。