Sqlplus 参数

Posted

技术标签:

【中文标题】Sqlplus 参数【英文标题】:Sqlplus parameters 【发布时间】:2012-02-10 17:23:58 【问题描述】:

大家! 我想知道这条线的作用:

sqlplus -s /nolog <<EOF

有什么想法吗? 感谢您的帮助!

【问题讨论】:

我认为EOF 是heredoc 而不是文件? 是的。此行在 Unix shell 中执行。 【参考方案1】:

根据您在 cmets 中提供的信息:

sqlplus -s /nolog <<EOF

在启用静默模式的情况下启动sqlplus 的实例(我相信,它不会将任何输出发送到控制台屏幕),并且没有显式提供登录名(因此/nolog),它从 EOF heredoc 中包含的字符串(可能包含登录凭据)中获取输入。

Here 是 Oracle 在 sqlplus 上的文档的快速概览。

【讨论】:

【参考方案2】:

From HERE:

-s 静默选项:它抑制 SQL*Plus 横幅的输出、命令提示符和命令的回显。

/nolog 启动 SQL*Plus 但不登录(连接)用户/会话。


所以似乎启动 SQL*PLUS 而不登录用户/会话(nolog 选项)并且不显示信息(静默选项)。

【讨论】:

【参考方案3】:

完整的摘录应该是:

sqlplus -s /nolog << ABCDE

CONNECT user/pwd@database
-- DO SQL AND PLSQL STUFF
EXIT

ABCDE

这类似于运行sqlplus -s user/pwd@database @script.sql,其中script.sql 包含sql、plsql 内容和exit 命令。 &lt;&lt; 语法是 heredoc 的 shell 运算符,这意味着如果找到 $variables,则后面的所有行都是变量扩展的,并且第一行以 ABCDE 开头(在该行的最开头,没有空格,没有tabs) 结束输入。

【讨论】:

以上是关于Sqlplus 参数的主要内容,如果未能解决你的问题,请参考以下文章

[Oracle]sqlplus 启动参数说明

批处理脚本登录sqlplus参数

oracle之 sqlplus prelim 参数介绍 ( 处理hang )

如何在shell中调SQLPLUS 执行SQL语句

从 Python 向 SQLPlus 脚本传递参数

使用 SQLPLUS 中的数据库值作为批处理文件的参数