楼主:
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.