Teradata动态SQL中的时间文字无效

时间:2016-12-14 23:37:37

标签: teradata

当我使用静态sql将值插入DBCMNGR.ALERTREQUEST但在尝试使用动态sql字符串时不起作用时,以下存储过程正常工作。

尝试调用以下存储过程时,我得到无效的日期文字和时间字面值。

CALL TESTDB.ALERT_REQUEST_INSERT('Test_JobName','Test_JobDescription',
'Test_ActionDestination','Test_JobFullMessage')

需要帮助才能在没有任何错误的情况下实际操作。

在DBCMNGR.ALERTREQUEST中,日期和时间定义如下:

ReqDate DATE FORMAT 'YYYY/MM/DD'
ReqTime INTEGER
REPLACE PROCEDURE TESTDB.ALERT_REQUEST_INSERT( IN p_JobName CHARACTER(60), IN p_JobDescription CHARACTER(120), IN p_ActionDestination CHARACTER(120), IN p_JobFullMessage CHARACTER(600) ) ) 
BEGIN 
SET SQLSTR = 'INSERT INTO DBCMNGR.ALERTREQUEST ' || '(AlertRequest.ReqDate ' || ',AlertRequest.ReqTime ' || ',AlertRequest.JobName ' || ',AlertRequest.Description ' || ',AlertRequest.EventValue ' || ',AlertRequest.ActionCode ' || ',AlertRequest.RepeatPeriod ' || ',AlertRequest.Destination ' || ',AlertRequest.Message ' || ') ' || 'VALUES ( ' || ' DATE ' || ',TIME  ' || ''',''' || TRIM(p_JobName) || ''',''' || TRIM(p_JobDescription) || ''',0 ' || ',''+'' ' || ',0 ' || ''',''' || TRIM(p_ActionDestination) || ',''' || TRIM(p_JobFullMessage) || ''');'; 

EXECUTE IMMEDIATE SQLSTR; END;

0 个答案:

没有答案