【发布时间】:2018-10-13 06:37:14
【问题描述】:
我已在此处和在线搜索过此类错误 Teradata 错误“5407 日期时间或间隔的无效操作”,但找不到任何解决方案。
简单地说:我在 Teradata 中有一个简单的存储过程,它有 2 个输入和一个输出。这是存储过程:
Replace PROCEDURE SP.CompUserReturnID (
IN NTIDVar varchar(50),
IN CreatedDate TIMESTAMP(6),
OUT ReturnRes integer
)
BEGIN
DECLARE res varchar(1000);
DECLARE RetCompID integer;
DECLARE ReplaceNTIDVAR varchar(50);
-- In some cases, the NTIDVar contains the single quote ('). Example: John'O.Smith@company.com
-- so we need to replace the single quote
set ReplaceNTIDVAR = oreplace(NTIDVar,'''','''''');
set res = 'INSERT INTO tables.Computer (NTID, CreatedDate) VALUES (''' || ReplaceNTIDVAR || ''',' || CreatedDate ||') ';
EXECUTE IMMEDIATE res;
-- Do something else
set ReturnRes = res;
end;
执行这个简单的存储过程时,我收到错误消息:
Teradata 错误 5407 DateTime 或 Interval 的无效操作
CreatedDate 列在 TD 表中定义为 TimeStamp(6)。
任何线索将不胜感激。
谢谢
【问题讨论】:
标签: stored-procedures teradata