如何在 bash 脚本中的 sqlplus 中添加新行?

问题描述 投票:0回答:1

我有一个执行以下 sqlplus 代码的 bash 脚本 (.sh):

sqlplus -s /nolog <<EOF > /logs/sql.log
   CONNECT db_user/db_password@db_name
   $SQL_STATEMENT
   EXIT
EOF

$SQL_STATEMENT 需要获取以下语句:

DECLARE V_EXIST NUMBER(1); BEGIN SELECT COUNT(1) INTO  V_EXIST FROM USER_DB_LINKS  WHERE DB_LINK = 'MY_DBLINK'; IF V_EXIST = 1 THEN EXECUTE IMMEDIATE 'DROP DATABASE LINK MY_DBLINK';END IF; END;
  /

末尾的“/”必须换行才能使 sqlplus 代码正常工作。

我尝试了多种方法都不起作用,执行.sh脚本时它一直显示在同一行。

我尝试的步骤在此链接中:https://www.baeldung.com/linux/add-newline-variable-bash

非常感谢任何帮助。

谢谢你。

bash shell unix sqlplus
1个回答
0
投票

printf

printf -v SQL_STATEMENT '%q' "DECLARE V_EXIST NUMBER(1); BEGIN SELECT COUNT(1) INTO  V_EXIST FROM USER_DB_LINKS  WHERE DB_LINK = 'MY_DBLINK'; IF V_EXIST = 1 THEN EXECUTE IMMEDIATE 'DROP DATABASE LINK MY_DBLINK';END IF; END;
  \\"
© www.soinside.com 2019 - 2024. All rights reserved.