Stored procedures 使用teradata存储过程插入的值错误

Stored procedures 使用teradata存储过程插入的值错误,stored-procedures,insert,teradata,Stored Procedures,Insert,Teradata,我有一个存储过程,其中我显式捕获一个特定错误,即无效的Emp名称 当出现这种情况时,我将消息文本和SQLSTATE设置为特定值 然后退出处理程序退出并向存储过程的调用者显示

我有一个存储过程,其中我显式捕获一个特定错误,即无效的Emp名称

当出现这种情况时,我将
消息文本
SQLSTATE
设置为特定值

然后退出处理程序退出并向存储过程的调用者显示
&
消息文本。这是我希望发生的事情,它按预期工作。但是,我也在日志表中插入一行,作为退出处理程序的一部分,并且由于某些原因,插入到日志表中的值在末尾附加了额外的字符,即

提供的员工姓名无效提供的员工姓名

而不是

提供的员工姓名无效。

如果我将消息硬编码到日志表中,它会工作,但我不想这样做。发送给存储过程调用方的消息工作正常

下面的参考代码

任何援助都将是巨大的

REPLACE PROCEDURE SecAppl.Create_User_SL
(p_UserName CHAR(7)
,p_Password VARCHAR(30)
,p_EmpName VARCHAR(70) /* First Name then Surname */
,p_EmailAddr VARCHAR(100)
)

BEGIN

 DECLARE EXIT HANDLER FOR SQLEXCEPTION
   BEGIN
    SET vSQL_ERR_CDE = SQLCODE;
    SET vSQL_STATE = SQLSTATE;
    SET vSQL_ERR_MSG = '';
    GET DIAGNOSTICS EXCEPTION 1  vSQL_ERR_MSG = MESSAGE_TEXT;

    INSERT INTO Log_Table
       VALUES (p_UserName, 'SQLEXCEPTION' , :SQLCODE, :SQLSTATE, vSQL_ERR_MSG, CURRENT_TIMESTAMP);         
    RESIGNAL; -- Send message back to caller of Proc
  END;  

 IF p_EmpName = ''
   THEN SIGNAL SQLSTATE VALUE 'U0001' SET MESSAGE_TEXT = 'Invalid Employee Name provided';
END IF;

END;