开发者社区> 问答> 正文

NVL2函数报invalid input syntax for integer错误



错误描述

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


解决方案


通过自行扩充一个自定义的public.nvl2即可解决数据类型问题,同时用户无需要调整原有Oracle已经开发好的程序或存储过程。
  1. [backcolor=transparent]create [backcolor=transparent]or[backcolor=transparent] replace [backcolor=transparent]function[backcolor=transparent] [backcolor=transparent]public[backcolor=transparent].[backcolor=transparent]nvl2[backcolor=transparent]([backcolor=transparent]p_v1 [backcolor=transparent]string[backcolor=transparent],[backcolor=transparent] p_v2 anyelement[backcolor=transparent],[backcolor=transparent] p_v3 anyelement[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]return[backcolor=transparent] anyelement [backcolor=transparent]as
  2. [backcolor=transparent]declare
  3. [backcolor=transparent]    v_v1 [backcolor=transparent]int[backcolor=transparent];
  4. [backcolor=transparent]begin
  5. [backcolor=transparent]    IF p_v1 NOTNULL THEN
  6. [backcolor=transparent]        v_v1[backcolor=transparent]=[backcolor=transparent]1[backcolor=transparent];
  7. [backcolor=transparent]    ELSE
  8. [backcolor=transparent]        v_v1[backcolor=transparent]=[backcolor=transparent]null[backcolor=transparent];[backcolor=transparent]
  9. [backcolor=transparent]    [backcolor=transparent]END[backcolor=transparent] IF[backcolor=transparent];
  10. [backcolor=transparent]    [backcolor=transparent]return[backcolor=transparent] pg_catalog[backcolor=transparent].[backcolor=transparent]nvl2[backcolor=transparent]([backcolor=transparent]v_v1[backcolor=transparent],[backcolor=transparent] p_v2[backcolor=transparent],[backcolor=transparent] p_v3[backcolor=transparent]);
  11. [backcolor=transparent]end[backcolor=transparent];
  12. [backcolor=transparent]select[backcolor=transparent] nvl2[backcolor=transparent]([backcolor=transparent]'aa'[backcolor=transparent],[backcolor=transparent]1[backcolor=transparent],[backcolor=transparent]2[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]--此时运行的应该是上面新建立的[backcolor=transparent]public[backcolor=transparent].[backcolor=transparent]nvl2
  13. [backcolor=transparent]select[backcolor=transparent] nvl2[backcolor=transparent]([backcolor=transparent]100[backcolor=transparent],[backcolor=transparent]1[backcolor=transparent],[backcolor=transparent]2[backcolor=transparent]);[backcolor=transparent]  [backcolor=transparent]--此时运行的应该是系统原生的[backcolor=transparent]pg_catalog[backcolor=transparent].[backcolor=transparent]nvl2
  14. [backcolor=transparent]select[backcolor=transparent] nvl2[backcolor=transparent]([backcolor=transparent]null[backcolor=transparent],[backcolor=transparent]1[backcolor=transparent],[backcolor=transparent]2[backcolor=transparent]);[backcolor=transparent]  [backcolor=transparent]--此时运行的应该是系统原生的[backcolor=transparent]pg_catalog[backcolor=transparent].[backcolor=transparent]nvl2

展开
收起
云栖大讲堂 2017-10-18 13:55:24 2908 0
0 条回答
写回答
取消 提交回答
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spark SQL: Past, Present and Future 立即下载
Spark SQL:Past Present &Future 立即下载
Semantic Search--Fast Results from Large,Foreign Language Corpora 立即下载