越來越接近運行我的第一個存儲過程。這一次編譯,但是當我 call test.fttest5('YEAR');
運行它,它拋出一個錯誤這個存儲過程有什麼問題?
SQL狀態:22001 供應商代碼:-303 消息:[SQL0303] Host變量* N不兼容。原因。 。 。 。 。 :由於主機變量* N的數據類型與相應列表項的數據類型不兼容,因此無法執行FETCH,SELECT,CALL,SET,VALUES INTO,GET DIAGNOSTICS,GET DESCRIPTOR或SET DESCRIPTOR。
另外如何在我的存儲過程中指定無限數據類型?我試過DECLARE temp VARCHAR(MAX);
但它沒有奏效。我的平臺是ISeries DB2 V5R4。
create procedure test.fttest5
(IN ftExpression CHARACTER(30))
language sql
reads sql data
dynamic result sets 1
begin
declare cmd VARCHAR(50);
declare whr VARCHAR(50)
;
declare x cursor for sl;
set cmd='select * from testSchema.tempTable' ;
if ftExpression IS NOT NULL
THEN
set whr= ftExpression;
END IF;
set cmd=cmd || CASE WHEN whr IS NULL THEN '' ELSE ' ORDER BY ' || whr END;
prepare sl from cmd;
open x;
return;
end
;
謝謝,我會研究你說的話,並保持這個線程張貼! – 2010-07-19 19:57:39
想通了,謝謝。你在現場。 – 2010-07-21 11:17:04