Oracle 变量作为选择
Posted
技术标签:
【中文标题】Oracle 变量作为选择【英文标题】:Oracle Variable as select 【发布时间】:2016-05-11 06:46:05 【问题描述】:我必须在我的项目中调用 oracle SQL 语句。
所有连接相关的东西都完成了,但是我的工具没有捕获oracle执行的输出参数。
因此我需要更改此查询以在 select 语句中返回 p_num
值。
即该表有 1 列 ('p_num'),列名为 'Result',并且只有一行 p_num
值。
以下是当前在dbms_output.put_line
的帮助下给出输出值的sql语句
DECLARE
p_num varchar2(4000);
message varchar2(4000) ;
BEGIN
p_num := MyFunction();
dbms_output.put_line('Message : ' || p_num) ;
END;
我想要的是 SELECT
语句中的 p_num
值,以便我可以在我的 bpm 工具中捕获特定列。
【问题讨论】:
哪个 SELECT 语句?您的问题中没有选择语句 我希望 p_num 的值应该在结果集中,以便我的 bpm 工具捕获输出结果值,我想要从 temp_table 中选择 p_num 之类的东西 哪个结果?向我们展示您要更改的查询 不确定,但您可能正在寻找这个:- ***.com/questions/5127482/… 在上面的 sql 语句中我在 p_num 中有值,我希望它是选择语句表结果的形式 【参考方案1】:您可以在SELECT语句中直接调用该函数。
1) 第一种方法是通过纯 SQL 来实现
SELECT MyFunction FROM DUAL;
2) 第二种方式是 PLSQL,但除非不可避免,否则我不会推荐它
set serveroutput on;
declare
lv_var VARCHAR2(100);
lv_out_param VARCHAR2(100);
BEGIN
lv_var:=MyFunction(lv_out_param);
dbms_output.put_line(lv_var||' '||lv_out_param);
END;
/
【讨论】:
我是 oracle 新手,请问这是 DUAL,关键字吗?当我从 DUAL 执行 select Myfunction('APPR') 时,它显示 ORA-06550:第 9 行,第 5 列:PLS-00428:此 SELECT 语句中应有一个 INTO 子句 DUAL 是一个单行单列的内置表。当您只想评估一个表达式并且对表数据并不真正感兴趣时使用它。 关于 PLS-00428:不要使用 PL/SQL,即删除 DECLARE、BEGIN、END 并只执行 SELECT 语句而无需其他任何内容。 @user3815413 :我已经添加了两种实现解决方案的方法。让我知道这是否有帮助。上面解释的 DUAL 是 ORACLE 提供的一个虚拟表。 非常感谢 Avrajit,非常感谢您的快速回复现在它说,Function MyFunction 没有参数,我如何在没有声明的情况下传递参数?以上是关于Oracle 变量作为选择的主要内容,如果未能解决你的问题,请参考以下文章