我有一个文件要在某人写的Ksh中执行。它有一组要在sqlplus中执行的命令。
首先是,
sqlplus -s $UP <<- END
后跟一组ddl命令,如create,drop等,
当我在shell中执行文件时,我在上面引用的起始行中得到错误。 我理解“-s”以静默模式启动sqlplus,$ UP是带有用户名/密码的连接字符串。但我无法做出“&lt;&lt; - END”部分的正面或反面(谷歌的许多网站都说输入重定向是“&lt;&lt;”而不是“&lt;&lt; - ”)。所以我假设错误必须在该部分并从文件中删除。 现在它读了,
sqlplus -s $UP
但是一旦我执行了文件,它就会等待来自shell的输入,而不是从文件中读取其余的行。我如何让sqlplus在文件的其余部分执行ddl命令?提前谢谢。
答案 0 :(得分:1)
此处“END”是块标记,不需要“ - ”。
为了从shell脚本运行sqls,下面给出一个简单的例子。
sqlplus system/manager << ENDOFSQL
whenever sqlerror exit sql.sqlcode;
select sysdate from dual;
exit;
ENDOFSQL
谢谢,
Rinson KE DBA