在存储过程中选择具有OUT参数的查询



我在Oracle SQL开发人员上编写了Oracle存储过程,其参数如下

    create or replace PROCEDURE "SYSLOCKDAILY" 
    Is
     BEGIN

    select * from PDB2B_SYSTEMLOCKINFO 
           where ISDAILY = 1 
             and active = 1 
             and TO_TIMESTAMP (to_char(sysdate,'HH12:MI AM'),'HH12:MI AM') >=TO_TIMESTAMP (STIME,'HH12:MI AM') 
             and TO_TIMESTAMP (to_char(SYSDATE,'HH12:MI AM'),'HH12:MI AM') <= TO_TIMESTAMP (ETIME,'HH12:MI AM');

    COMMIT;
    END SYSLOCKDAILY;

,但是我在错误日志上以下错误。请帮助我解决这个问题。

错误(9,2(:PLS-00428:在此SELECT语句

中期望将AN INTO子句

在PL/SQL列中,必须使用INTO关键字将选定语句的PL/SQL列分配给变量。尝试:

DECLARE
    v_number_of_rows int;
BEGIN
    SELECT COUNT(*) 
    INTO v_number_of_rows 
    FROM PDB2B_SYSTEMLOCKINFO 
    WHERE ...<your query>;
END;

在此示例中,值将存储在v_number_of_rows中。如果您需要处理多行,我建议阅读有关光标的信息。

最新更新