如何将变量设置为Oracle SQL语句的返回值?

时间:2014-03-07 20:30:25

标签: oracle

我正在使用一个报告程序,在其中我给它SQL语句和选中的值,成为变量。例如,在这种情况下,我正在尝试确定记录是否已存在。如果没有,则返回值为0的RecordExists;否则1。

这对我来说使用SQL Server要简单得多,但我想弄清楚为什么下面的内容不起作用。生成的语法错误表明我需要一个带有SELECT RecordExists FROM Dual;行的“INTO”子句,即使我当时没有尝试分配值。

DECLARE 
  RecordExists NUMBER;
BEGIN
 SELECT COUNT(*) INTO RecordExists FROM Times
 WHERE Times.OrderNumber = '123456789' AND Times.StopSequence = '1';
 IF (RecordExists >= 1)
THEN
 SELECT 1 INTO RecordExists FROM dual;
 SELECT RecordExists FROM dual;
ELSE
 SELECT 0 INTO RecordExists FROM dual;
 SELECT RecordExists FROM dual;
END IF;
END;

1 个答案:

答案 0 :(得分:1)

你能用更简单的东西,比如:

SELECT CASE 
  WHEN count(*) > 0 then 1 
  ELSE 0 END 
FROM times WHERE OrderNumber = '123456789' AND Times.StopSequence = '1' ;