我嘗試使用DB2存儲過程來更改表。以下是我的代碼。我在alter query中發現了這個問題。但是同樣的查詢在DB2命令行編輯器中完美執行。我想使用存儲過程運行相同的查詢。請幫助我。db2 alter auto increment查詢存儲過程
CREATE PROCEDURE MODIFYAUTOINCRE()
SPECIFIC TEST
RESULT SETS 1
MODIFIES SQL DATA
LANGUAGE SQL
------------------------------------------------------------------------
-- SQL Stored Procedure
------------------------------------------------------------------------
P1: BEGIN
DECLARE v_max INTEGER DEFAULT 0;--
DECLARE stmt1 VARCHAR(100);
DECLARE stmt2 VARCHAR(100);
DECLARE name1 VARCHAR(100);
-- Declare cursor
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT MAX(LABEL_ID) FROM ESTORE.APPLICATION_LABELS;
-- Cursor left open for client application
OPEN cursor1;
FETCH cursor1 INTO v_max;
IF (v_max > 0) THEN
SET v_max=v_max+1;
SET stmt1= 'ALTER TABLE APTR.APPLICATION_LABELS ALTER COLUMN LABEL_ID SET GENERATED AS IDENTITY (START WITH '||v_max||' INCREMENT BY 1 NO CACHE);';
PREPARE name1 FROM stmt1;
EXECUTE IMMEDIATE name1;
commit;
END IF;
END P1
ERROR: 意外的標記 「END-OF-STATEMENT」 之後發現 「NTITY(START WITH 69」 預期標記可能包括: 「)」 .. SQLCODE = -104,SQLSTATE = 42601, DRIVER = 3.58.81
我刪除了分號。它顯示相同的錯誤.. – 2014-09-26 12:32:20