ใกล้จะถึงการรันโพรซีเดอร์ที่เก็บไว้ครั้งแรกของฉันแล้ว อันนี้คอมไพล์ แต่เมื่อฉันรันด้วย 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
;