【问题标题】:oracle get variables from plsql back to linuxoracle从plsql中获取变量回linux
【发布时间】:2014-03-24 05:39:47
【问题描述】:

当从 linux 命令向 plsql 块发送变量时,我将程序称为 sqlplus user/pass@db @file param1,在文件中我可以将 param1 用作 &1。 现在反过来会发生什么?如果你想要一个可以执行某事的文件。 sqlplus user/pass@db 并在此文件中,您可以从表中选择数字,这将导致单个数字。 执行此操作时,我如何将此号码发送回 linux 以便在我的销售脚本中使用它? 即export NUMBER=我从sql得到的数字

【问题讨论】:

  • 你不能。 sqlplus 不会将值返回给 shell。在 google 上搜索从 plsql 执行 shell 命令的方法。

标签: linux oracle shell sqlplus


【解决方案1】:

您可以使用此处的文档来执行此操作:

v1=`$ORACLE_HOME/bin/sqlplus -S /nolog > ${logfile} 2>&1 << EOF
connect test/passwd@sid
SET FEED OFF;
SET TERMOUT ON;
SET VERIFY OFF;
SET ECHO OFF;
SET HEAD OFF;
SELECT sysdate from dual FROM DUAL;
EXIT
EOF`

echo $v1

【讨论】:

  • 可以将用户名、密码和实例的值替换为变量,例如:connect test/passwd@sid -> connect $User/$Pass@$dbinstance 吗?
  • 是的,你可以。在您发送到此处文档的文本中,您可以使用 unix 变量。
  • @Robert.. 我还有一个标题为:data pump query with sql inside to_timestamp with subquery ..在该问题的第二次编辑中,我写了一个同样基于此的想法。因此,如果您可以查看该问题并且我的语法正确,您也可以回答。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2018-07-30
  • 2022-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多