【发布时间】:2021-03-23 02:02:49
【问题描述】:
我正在尝试使用 oreplace 更新表格,但它不会让我说它超过了长度。 我已经尝试将其分解为第一种方法中的多个 orplace 语句,以及第二种方法中的多个更新语句,但它仍然不起作用或给我想要的结果。
显然 orplace 最多只能返回 8000 个字符?如果是,解决方案/解决方法是什么?
第一种方法:
sel
oreplace (substr(text_val,1,8000),'CIM_OUTPUT','DD_CIM_OUTPUT')
|| oreplace (substr(text_val,8001,16000),'CIM_OUTPUT','DD_CIM_OUTPUT')
|| oreplace (substr(text_val,16001,18000),'CIM_OUTPUT','DD_CIM_OUTPUT')
from DB.TABLENAME ;
第二种方法:
这样做的问题是 text_val 在第一次更新后被截断,其余更新不适用于 text_Val 的完整值,因此将它们呈现为无用。
update DB.TABLENAME set text_val = oreplace (substr(text_val,1,8000),'CIM_OUTPUT','DD_CIM_OUTPUT');
update DB.TABLENAME set text_val = text_val||oreplace (substr(text_val,8001,16000),'CIM_OUTPUT','DD_CIM_OUTPUT');
update DB.TABLENAME set text_val = text_val || oreplace (substr(text_val,16001,18000),'CIM_OUTPUT','DD_CIM_OUTPUT');
【问题讨论】:
标签: sql database teradata data-warehouse teradatasql