очень близко к запуску моей первой хранимой процедуры. Этот компилируется, но когда я запускаю его с
call test.fttest5('YEAR');
выдает ошибку
Состояние SQL: 22001
Код поставщика: -303
Сообщение: [SQL0303] Переменная хоста * N не совместима. Причина , , , , : Невозможно выполнить FETCH, SELECT, CALL, SET, VALUES INTO, GET DIAGNOSTICS, GET DESCRIPTOR или SET DESCRIPTOR, поскольку тип данных хост-переменной * N не совместим с типом данных соответствующего элемента списка.
Кроме того, как мне указать неограниченный тип данных в моей хранимой процедуре? Я пытался 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
;