【问题标题】:Error while connecting the sqlplus from shell script从 shell 脚本连接 sqlplus 时出错
【发布时间】:2017-11-06 07:15:51
【问题描述】:
REQ_OUTPUT1=`echo $XXOLA_TOP/log/Inv/xxola_inv_item_conv_int`
echo Connecting in sqlplus
sqlplus -s $1@$TWO_TASK   <<+     > $REQ_OUTPUT1
SET VERIFY OFF
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
SET LINESIZE 500;
SET SERVEROUTPUT ON SIZE 1000000;
SELECT 1 FROM DUAL;
  exit;

以上是我从 shell 程序连接 sqlplus 的代码。 但是当我运行它时,我遇到了错误..

第 36 行:警告:第 29 行的此处文档由文件结尾分隔(需要 `+')

【问题讨论】:

  • 这个脚本的想法是什么 - 你能逐步解释你想用它实现什么吗?例如将其作为第 1 点运行,然后将其作为第 2 点运行。预期结果是:....,而实际结果是:!.... 例如。在此先感谢 m8!
  • 错误信息很清楚。如果您要添加行号,那就更清楚了。你知道什么是here-document吗?

标签: oracle shell unix sqlplus


【解决方案1】:

您没有正确结束此处的文档。不要在此处使用 + 之类的符号作为文档分隔符。使用适当的有意义的字符串。

REQ_OUTPUT1=`echo $XXOLA_TOP/log/Inv/xxola_inv_item_conv_int`
echo Connecting in sqlplus
sqlplus -s $1@$TWO_TASK   <<INP     > $REQ_OUTPUT1
SET VERIFY OFF
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
SET LINESIZE 500;
SET SERVEROUTPUT ON SIZE 1000000;
SELECT 1 FROM DUAL;
  exit;
INP

【讨论】:

  • 为什么不用像 '+' 这样的符号呢? '+' 不是问题。缺少“+”是问题所在。
  • @miracle173 :我知道 + 不是问题。但是,我相信像 INP , END 等这样的字符串是有意义的,并且增加了可读性。
猜你喜欢
  • 1970-01-01
  • 2012-05-03
  • 2016-03-27
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多