0
我已经在db2中编写了以下存储过程。存储过程中的问题:db2
CREATE or REPLACE PROCEDURE RTIMD.IALERT_PROC (IN usr_name VARCHAR(20) DEFAULT '', IN IN_RTIM_ID VARCHAR(25) default '', IN api_method VARCHAR(25) DEFAULT '', IN params VARCHAR(500) default '', IN application_name VARCHAR(20) default '', OUT TICKT_ID VARCHAR(20), OUT RTIMID_VAR VARCHAR(25))
LANGUAGE SQL
BEGIN
DECLARE RTIM_ID_OUT VARCHAR(25);
IF api_method = 'getIncident' THEN
SET TICKT_ID = EXECUTE IMMEDIATE ('SELECT DISTINCT TICKET_ID FROM RTIMD.V3_TICKET_LOG WHERE RTIM_ID = IN_RTIM_ID');
SET RTIM_ID_OUT = IN_RTIM_ID;
ELSEIF api_method = 'createIncident' THEN
SET RTIMID_VAR = EXECUTE IMMEDIATE ("select 'RTIM_' concat usr_name concat varchar(bigint(days(current date) - days('1970-01-01'))*bigint(86400) + midnight_seconds(current_timestamp - current_timezone)) concat '_' concat varchar(SMALLINT (RAND() *10000 + 1)) from SYSIBM.SYSDUMMY1");
SET RTIM_ID_OUT = RTIMID_VAR;
ELSEIF api_method = 'closeIncident' THEN
SET RTIM_ID_OUT = IN_RTIM_ID;
END IF;
INSERT INTO RTIMD.V3_TICKET_LOG(RTIM_ID, STATE, API_METHOD, API_MESSAGE, TICKET_TYPE, IMPACT_ROW_ID, TICKET_ID, PARAMS, REMOTE_USER, CREATED, UPDATED, DB_STATE, CPS_STATE, APPLICATION, PRB_OWNER, SN_INSTANCE) VALUES (RTIM_ID_OUT, 0, api_method, '', 'Incident', 0, '', params, usr_name, CURRENT TIMESTAMP, TIMESTAMP, 0, 0, application_name, 'self', '');
END
执行存储的proc时,出现以下错误消息。 。
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "IMMEDIATE" was found following "SET
TICKT_ID=EXECUTE". Expected tokens may include: "IN". LINE NUMBER=1.
SQLSTATE=42601
出了什么错在这里,我已经够冲浪,但没有答案:( 可能有一些语法错误请指引我
TIA