oracle从plsql中获取变量回linux
Posted
技术标签:
【中文标题】oracle从plsql中获取变量回linux【英文标题】:oracle get variables from plsql back to 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 命令的方法。 【参考方案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 ..在该问题的第二次编辑中,我写了一个同样基于此的想法。因此,如果您可以查看该问题并且我的语法正确,您也可以回答。非常感谢以上是关于oracle从plsql中获取变量回linux的主要内容,如果未能解决你的问题,请参考以下文章
如何在动态 sql (ORACLE PLSQL) 中获取局部临时变量中的计数 (*) 值
从表中的一系列数字中获取范围并将所有范围存储在 PLSQL/Oracle Forms 中的字符串变量中
从 Spring JAVA 中的 oracle PLSQL 函数获取结果集时出错