整数的无效输入语法:“1”postgresql

invalid input syntax for integer: "1" postgresql

当我尝试将 TEXT 列转换为整数时,PostgreSql 给出了这个错误。

select pro_id::integer  from mmp_promocjas_tmp limit 1;

该列仅包含数字,有效整数。 “1”怎么可能是无效整数?

select pro_id, length(pro_id) ,length(trim(pro_id)) from mmp_promocjas_tmp limit 1;

输出:

1 | 2 | 2

查询 select pro_id from mmp_promocjas_tmp where trim(pro_id) = '1' 未显示任何内容。

我尝试删除空格,但没有结果:

select pro_id  from mmp_promocjas_tmp  where  regexp_replace(trim(pro_id), '\s*', '', 'g')

该栏目中可能存在虚假的不可见内容。 要使它们可见,请尝试这样的查询:

 select pro_id, c,lpad(to_hex(ascii(c)),4,'0') from (
      select pro_id,regexp_split_to_table(pro_id,'')  as c
       from (select pro_id from mmp_promocjas_tmp limit 10) as s
 ) as g;

这将显示 ID 及其包含的每个字符,既作为字符又作为其在曲目中的十六进制代码。