你好专家,我有一个 bash 脚本要执行,当在 oracle 数据库服务器上执行时,它将执行诸如读取一些文件和填充一些表之类的操作,但如果在 oracle 客户端计算机(仅客户端安装)上执行相同操作,则不会进入该脚本环形。我的问题是我无法找出如何区分它是数据库服务器还是仅是 Oracle 客户端安装。
我的脚本将在 oracle 12C 和 19C 上运行。有关如何区分这两种类型的安装的任何提示?
你好专家,我有一个 bash 脚本要执行,当在 oracle 数据库服务器上执行时,它将执行诸如读取一些文件和填充一些表之类的操作,但如果在 oracle 客户端计算机(仅客户端安装)上执行相同操作,则不会进入该脚本环形。我的问题是我无法找出如何区分它是数据库服务器还是仅是 Oracle 客户端安装。
我的脚本将在 oracle 12C 和 19C 上运行。有关如何区分这两种类型的安装的任何提示?
我正在尝试这样做:
在 sample.sh 中:
#!/bin/bash
sqlplus / as sysdba
select * from dual;
就在我运行这个 shell 脚本时,它会打开 sqlplus 实用程序,但它无法执行我编写的下一行。当我手动退出 sqlplus 时,shell 才会执行剩余的行,并且我收到错误消息,提示“Select * from dual”不是有效命令。
如何让脚本在sqlplus 的上下文中执行 SQL 文本?
我有一个运行良好的脚本TOAD
:
SELECT max (ID)+1 from apps_details;
当我尝试在 shell 脚本中运行它时,出现错误:
DB_CONNECT="XXXXX/XXXXX@XXXXXX"
echo "Inserting the DataBase"
/oravl01/oracle/12.1.0.1/bin/sqlplus -s $DB_CONNECT <<END
set head off
set feedback off
set pagesize 2400
set linesize 2048
ID_VAL=`SELECT max (ID)+1 from apps_details;`
exit
END
/pciuser/tools/jenkins/jenkins/scripts/Jenkins_Internal/Create_Jenkins_Container/InsertToDB.ksh[31]: syntax error at line 1: `(' unexpected
第 31行指的是oravl01
行,但我知道问题不存在,因为一旦我删除了ID_VAL
分配,它就可以工作。
编写它的正确语法是什么?