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