簡體   English   中英

DB2(找到光標)無效關鍵字“找到”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM