如何根据查询的结果向存储过程中的选择添加列?

时间:2019-05-16 17:21:19

标签: sql oracle dynamicquery

我正在使用Oracle SQL Developer,我需要在表中进行搜索以查找是否至少有一条记录匹配。搜索完成后,从存储过程中返回true或false值。我被问到不仅要返回true或false的结果,还要从新添加的列中添加两个值。我已经有部分查询返回true或false(这是先前创建的)。现在,我需要创建一个选择,该选择返回这两个新值以及先前生成的值“ T”或“ F”作为结果。使用以下方式使用Decode创建此值:DECODE(COUNT(ColumnId),0,'F','T')答案。如何将这个真或假值(表中不存在)与表中的两个值一起作为SELECT值返回?

这是针对Web服务的,数据库使用Oracle SQL Developer作为接口,并且如果存在匹配项,则客户端期望String值以及两列值。如果没有匹配项,我将返回带有两个虚拟值的字符串。我尝试选择两列,然后选择具有AS名称的答案变量,但它不起作用。选择变量本身也不起作用。

create or replace procedure
PROCEDURE procedurename
(
Value IN VARCHAR,
BoolValue OUT VARCHAR,
) AS
BEGIN
SELECT DECODE(COUNT(ColumnId), 0, 'F', 'T') answer
INTO Variable
FROM tablename
WHERE (*Conditions*);
END
procedurename

IF answer= 'T' THEN 
            SELECT Val1, Val2, Val3, answer
            FROM tablename
            WHERE col1= 'val1'AND col2 = 'val2';

我希望得到一个(例如)结果:

Val1,Val2,Val3,T

我得到:

  

“答案”:无效的标识符

0 个答案:

没有答案