[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