全部产品
云数据库 RDS 版

NVL2函数报invalid input syntax for integer错误

更新时间:2016-11-10 14:24:02   分享:   

错误描述

  1. ERROR: invalid input syntax for integer: "aa"
  2. LINE 1: select nvl2('aa',1,2);
  3. ^
  4. ********** Error **********
  5. ERROR: invalid input syntax for integer: "aa"
  6. SQL state: 22P02
  7. Character: 13

解决方案

通过自行扩充一个自定义的public.nvl2即可解决数据类型问题,同时用户无需要调整原有Oracle已经开发好的程序或存储过程。

  1. create or replace function public.nvl2(p_v1 string, p_v2 anyelement, p_v3 anyelement) return anyelement as
  2. declare
  3. v_v1 int;
  4. begin
  5. IF p_v1 NOTNULL THEN
  6. v_v1=1;
  7. ELSE
  8. v_v1=null;
  9. END IF;
  10. return pg_catalog.nvl2(v_v1, p_v2, p_v3);
  11. end;
  12. select nvl2('aa',1,2); --此时运行的应该是上面新建立的public.nvl2
  13. select nvl2(100,1,2); --此时运行的应该是系统原生的pg_catalog.nvl2
  14. select nvl2(null,1,2); --此时运行的应该是系统原生的pg_catalog.nvl2
本文导读目录
本文导读目录
以上内容是否对您有帮助?