bash - 将变量从 bash shell 传递到 sql 文件到 oracle 表

标签 bash oracle11g sqlplus

我已经在 my.sh 文件中的 my.sh 文件中设置了变量(例如 ENV=$1 RELEASE_ID=$2)。我将 sqlplus 放入我的 sql 文件中,如

sqlplus -S $username/password@destination @/path/copysetup/insert.sql

我想将变量 ENV=$1 RELEASE_ID=$2 从 unix 提示符调用传递到我的 sql 文件中作为

copysetup.sh env01 release 1.0

我想从我的 sql 文件中将相同的变量传递到 oracle 表中

insert into table...

有人可以协助如何将变量从 bash shell 脚本传递到 sql 文件并最终将其插入到我的 oracle 表中吗?

最佳答案

命令行传递参数:

sqlplus -S $username/password@destination @/path/copysetup/insert.sql $ENV $RELEASE_ID

然后在 SQL 脚本中它们变为 &1 和 &2(确保您在 SQL 脚本的顶部设置了 set scan on)

例如

set scan on
insert into foo (env, release) values ('&1', '&2');
commit;

关于bash - 将变量从 bash shell 传递到 sql 文件到 oracle 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131955/

相关文章:

linux - 测试 tar 存档中的文件

从 R 脚本运行 bash 脚本

sql - 填补数据空白 - UNION、PARTITION BY 还是 JOIN?

python - 从 cx_Oracle 内部使用 SQL*PLUS COPY?

oracle - 是否可以将单个查询传递给 SQLplus?

oracle - SQLPlus varchar2 输出空格

bash - 根据行数将文件分成两半

python - 如何将CUPS打印机绑定(bind)到用户?

java - 追踪 java.sql.SQLSyntaxErrorException : ORA-00900: invalid SQL statement 的来源

sql - oracle sql regexp_replace