首页 > 解决方案 > Teradata 解析器弄乱了查询

问题描述

我在存储过程中有一个更新查询,如下所示

UPDATE tablename 
SET column = v_col,
column1 = v_col2, 
..
..
WHERE seq_num = v_seq_num

存储过程 seq_num 有一个输入变量匹配表的列名。在运行时代码变为

UPDATE tablename FROM tablename
SET column = :var1,
column1 = :var2, 
..
..
WHERE :var12 = :var13

它假定 where 子句中的 seq_num 作为变量,并且查询给出假脱机空间错误,因为它从表名更新表名。目前我无法更改输入变量名称,因为它需要大量代码更改。有解决办法吗?有谁知道这里发生了什么?我正在考虑写 WHERE tablename.seq_num = v_seq_num。

请指教。

谢谢

标签: sqlteradata

解决方案


推荐阅读