hampir menjalankan prosedur tersimpan pertama saya. Yang ini dikompilasi tetapi ketika saya menjalankannya dengan call test.fttest5('YEAR');
terjadi kesalahan
Status SQL: 22001 Kode Vendor: -303 Pesan: [SQL0303] Variabel host *N tidak kompatibel. Menyebabkan . . . . . : FETCH, SELECT, CALL, SET, VALUES INTO, GET DIAGNOSTICS, GET DESCRIPTOR, atau SET DESCRIPTOR tidak dapat dilakukan karena tipe data variabel host *N tidak kompatibel dengan tipe data item daftar yang bersangkutan.
Juga bagaimana cara menentukan tipe data tidak terbatas dalam prosedur tersimpan saya? Saya mencoba DECLARE temp VARCHAR(MAX);
tetapi tidak berhasil. Platform saya adalah 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
;