[英]DB2 (Cursor IS Found) INVALID KEYWORD "FOUND"
我遇到了 DB2 Cursor 的嚴重問題。 當我打開它時,我不知道里面是否有任何記錄?
我還在 IBM® Data Studio Version 4.1.0.0 中編寫我的存儲過程
您必須運行FETCH
語句來檢查結果集中是否有記錄。 但是你不能這樣做,因為你將結果返回給調用者。
因此,第一個解決方案是使用(聲明 | 創建)全局臨時表來INSERT SELECT
並檢查是否插入了任何行(使用GET DIAGNOSTICS語句),然后在此打開 cursor1 (C|D)GTT 或 cursor2。
第二種解決方案是將兩個 select 語句組合成一個,如下所示:
SELECT T.*
FROM
(
SELECT
RANK() OVER (ORDER BY NUMBER) RN
, T.*
FROM
(
SELECT 1 AS NUMBER, T1.*
FROM SYSIBM.SYSDUMMY1 T1
--WHERE 1=0
UNION ALL
SELECT 2 AS NUMBER, T2.*
FROM SYSIBM.SYSDUMMY1 T2
) T
) T
WHERE RN=1;
這個想法是UNION
兩個結果集,按它們的常量列值(在本例中為NUMBER
對它們進行排名,並返回具有最小排名的結果子集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.