Postgresql 处理空整数

Postgresql 处理空整数,postgresql,Postgresql,在这种情况下,应用程序有时会将空值传递给整数参数,从而在“,”处或附近出现语法错误 是否有一种方法可以从存储过程方面处理此问题 一种简单的复制方法是,例如: select (''::integer); 这显然返回: ERROR: syntax error at or near ":" 这与存储过程在示例案例中返回的错误大致相同 注意:服务器是PostgreSql 9.5。使用 使用 应用程序不应该处理这个问题吗?空字符串不是整数。是的,但我没有访问应用程序源代码的权限。我遇到了另一个错误:

在这种情况下,应用程序有时会将空值传递给整数参数,从而在“,”处或附近出现语法错误

是否有一种方法可以从存储过程方面处理此问题

一种简单的复制方法是,例如:

select (''::integer);
这显然返回:

ERROR:  syntax error at or near ":"
这与存储过程在示例案例中返回的错误大致相同

注意:服务器是PostgreSql 9.5。

使用

使用


应用程序不应该处理这个问题吗?空字符串不是整数。是的,但我没有访问应用程序源代码的权限。我遇到了另一个错误:错误:整数的输入语法无效:第1行:SELECT::int,因为您运行的是同一个片段吗?发布函数代码。应用程序不应该处理这个问题吗?空字符串不是整数。是的,但我没有访问应用程序源代码的权限。我遇到了另一个错误:错误:整数的输入语法无效:第1行:SELECT::int作为您运行的同一个片段?发布函数代码。不,问题是参数为空,而不是null,不是。缺少参数总是会引发语法错误,你必须在客户端应用程序中更正此错误。是的,对于非常旧的应用程序来说有点困难。嗯,不,问题是参数是空的,不是空的。缺少参数总是会引发语法错误,你必须在客户端应用程序中更正此错误。是的,对于非常旧的应用程序来说有点困难。
with the_data(str) as (
values 
    ('1'), 
    ('2'), 
    ('')
)

select nullif(str, '')::integer as value
from the_data;

  value 
--------
      1
      2
 <null>    
(3 rows)