[SQL ] 在procedure的SQL设定条件

楼主: lueichun (no anonymous)   2017-10-11 18:34:53
(针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
数据库名称:ORACLE
数据库版本:12G
内容/问题描述:
我想设计一个SQL 是可以根据参数值的有无 决定条件是什么
以下是Procedure:
PROCEDURE PC_QRY_ADJ_DATA(
PI_ACCT_ID IN VARCHAR2,
PO_OPER_CUR OUT SYS_REFCURSOR,
PO_ERR_CDE OUT VARCHAR2,
PO_ERR_MSG OUT VARCHAR2)
AS
CH_BREAK_POINT VARCHAR2(100);
BEGIN
CH_BREAK_POINT := 'INITIAL CURSOR';
OPEN PO_OPER_CUR FOR
SELECT ad.ACCT_ID ACCT_ID
FROM SB_TB_ADJUSTMENT ad
WHERE ad.ACCT_ID IN (CASE WHEN PI_ACCT_ID IS NOT NULL
THEN PI_ACCT_ID
ELSE (SELECT ACCT_ID FROM SE_TB_OPERATOR) END);
CH_BREAK_POINT := '处理回传值';
PO_ERR_CDE := '00';
PO_ERR_MSG := NULL;
END;
END SB_PK_ADJUSTMENT;
黄字部分是SQL
作者: iFEELing (ing)   2017-10-12 02:00:00
输入 1617 的时候 PI_ACCT_ID IS NOT NULL.所以你的where条件里面找的是 1617 , return 0 rows.
楼主: lueichun (no anonymous)   2017-10-12 19:50:00
感谢 已经解决了

Links booklink

Contact Us: admin [ a t ] ucptt.com