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

时间:2016-02-29 20:05:35

标签: postgresql postgresql-9.4

当我尝试将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')

1 个答案:

答案 0 :(得分:1)

列中可能存在虚假的隐形内容。 要使它们可见,请尝试这样的查询:

 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及其包含的每个字符,包括字符及其在曲目中的十六进制代码。