我正在通过向int4数组添加varchar来更新数组。 'varchar'字段是所有数字,所以我尝试将其转换为:: integer但它不起作用
update dwh.attr_lookup set kli_tree = array[target_909_kli::integer] || kli_tree
给我这个错误
ERROR: ERROR: invalid input syntax for integer: ""
Query = update
dwh.attr_lookup set kli_tree = array[target_909_kli::integer]
|| kli_tree
这样做的正确方法是什么?
答案 0 :(得分:2)
您正在尝试将空字符串转换为整数,但这不起作用:
=> select ''::int;
ERROR: invalid input syntax for integer: ""
LINE 1: select ''::int;
^
你必须决定用空字符串做什么。如果你想将它们转换为零,那么这样的东西应该有效:
array[case when target_909_kli = '' then 0 else target_909_kli::integer end]
答案 1 :(得分:1)
显然,您的varchar
字段不是所有数字。在这种情况下不会有任何双引号 - 因为错误消息通知我们。
如果错误现在尚未清除,请尝试提供完整示例。包括表定义和样本值。