【问题标题】:Running pl/sql in Korn Shell(AIX)在 Korn Shell(AIX) 中运行 pl/sql
【发布时间】:2011-02-25 22:01:41
【问题描述】:

我有一个文件要在某人编写的 Ksh 中执行。它有一组在sqlplus中执行的命令。

开头是,

sqlplus -s $UP <<- END

后跟一组ddl命令,如create、drop等,

当我在 shell 中执行文件时,我在上面引用的起始行中得到错误。 我知道“-s”以静默模式启动 sqlplus,$UP 是带有用户名/密码的连接字符串。但我无法确定“

sqlplus -s $UP 

但是一旦我执行了文件,它就会等待来自 shell 的输入,而不是从文件中读取其余的行。我将如何让 sqlplus 执行文件其余部分中的 ddl 命令?提前致谢。

【问题讨论】:

  • 问题出在哪里?原始脚本是否有效?
  • @Juraj。它有点起作用。它抱怨它不知道“END”是什么意思。
  • &lt;&lt;- 中的连字符允许您使用前导制表符缩进块以提高可读性。选项卡将被剥离,因此它们不会影响块的内容。如果没有连字符,前导选项卡可能很重要,具体取决于上下文。
  • 我在这里找到了详细信息:www2.research.att.com/sw/download/man/man1/ksh.html

标签: oracle unix plsql ksh sqlplus


【解决方案1】:

这里的“END”是块标记,“-”不是必需的。

对于从shell脚本运行sqls,下面给出一个简单的例子。

sqlplus system/manager << ENDOFSQL 

       whenever sqlerror exit sql.sqlcode;
       select sysdate from dual;
       exit;
ENDOFSQL

谢谢,

Rinson KE 数据库管理员

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多