我无法编译这个存储过程,我只想声明并设置一个将在proc中使用的变量。注意:shipNo是唯一的传入参数,并且是VARCHAR(32)。
P1: BEGIN
DECLARE @likeShipNo VARCHAR(32);
SET likeShipNo = '%' || shipNo || '%';
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT ADV_SHIP_NOTICE_NO,
VNDR_ID,
LOC,
CARR_CD,
CARR_PRO_NO,
BL_NO,
SHIP_EQUIP_ID,
TS_LOAD
FROM TRITS
WHERE ADV_SHIP_NOTICE_NO LIKE(@likeShipNo);
OPEN cursor1;
END P1
答案 0 :(得分:3)
DB2中的变量不需要MSSQL中的@like。此外,当您返回光标时,您需要在开始之前添加句子RESULT SET 1
并将WITH RETURN TO CLIENT
添加到要返回的光标。程序应如下所示:
CREATE BEGIN MYSCHEMA.MYPROC (
IN shipNo VARCHAR(30) )
BEGIN
DECLARE likeShipNo VARCHAR(32);
SET likeShipNo = '%' || shipNo || '%';
DECLARE cursor1 CURSOR WITH RETURN TO CLIENT FOR
SELECT
ADV_SHIP_NOTICE_NO,
VNDR_ID,
LOC,
CARR_CD,
CARR_PRO_NO,
BL_NO,
SHIP_EQUIP_ID,
TS_LOAD
FROM
TRITS
WHERE
ADV_SHIP_NOTICE_NO LIKE likeShipNo;
OPEN cursor1;
END;