ORA-01722: invalid number,ORA-12801

SQL:

SELECT

/*+ parallel(a,32) */ a.id

          ,a.data_date

          ,a.mobile_num

          ,a.mobile_code

          ,b.prov AS mobile_prov

          ,b.city AS mobile_city

          ,b.mobile_oper

          ,a.psam

          ,a.psam_code

          ,c.detail_type

          ,c.busi_type

          ,c.sum_type

          ,a.trancde

          ,d.trans_name

          ,d.lv4_name

          ,d.lv3_name

          ,d.lv2_name

          ,d.lv1_name

          ,d.lv0_name

          ,a.merno

          ,a.outcdno

          ,a.outcdno_bin

          ,e.card_name AS outcdno_name

          ,e.card_type AS outcdno_type

          ,e.card_type_name AS outcdno_type_name

          ,e.bank_name AS out_bank_name

          ,e.bank_short_name AS out_bank_short_name

          ,a.incdno

          ,a.incdno_bin

          ,f.card_name AS incdno_name

          ,f.card_type AS incdno_type

          ,f.card_type_name AS incdno_type_name

          ,f.bank_name AS in_bank_name

          ,f.bank_short_name AS in_bank_short_name

          ,a.s_no

          ,a.terminal_area

          ,a.terminal_id

          ,a.pro_no

          ,a.n_platform

          ,a.org_id

          ,a.pay_state

          ,a.pay_respn

          ,a.trans_respn

          ,a.de37

          ,a.is_sucess

          ,a.total_am

          ,a.pro_am

          ,a.free_am

FROM edw.dw_fact_trans partition(DW_MONTH_201303) a

LEFT JOIN edm.d_mobile_info b

ON a.mobile_code = b.mobile_code

LEFT JOIN edm.d_psam_card_info c

ON a.psam_code = c.psam_ab_head

LEFT JOIN edm.d_trancde_info d

ON a.trancde = d.trans_code

LEFT JOIN edm.d_cardinfo_apply e

ON a.outcdno_bin = e.card_bin

LEFT JOIN edm.d_cardinfo_apply f

ON a.incdno_bin = f.card_bin      ;

报错信息:

SELECT

*

ERROR at line 1:

ORA-12801: error signaled in parallel query server P003, instance db1:db1 (1)

ORA-01722: invalid number

原因分析:

存在将字符和数字进行比较。

解决: a.mobile_code = to_char(b.mobile_code)

时间: 2024-12-30 03:21:58

ORA-01722: invalid number,ORA-12801的相关文章

讨厌麻烦的ora 01722无效数字

webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开始我以为是数据库不同,导致部分数据类型差异,(但又觉得有点离谱,切换数据库,不至于会导致这种错误吧) 经过排查,总结得出如下: 1.对于两个类型不匹配(一个数字类型,一个非数字类型,同下)的值进行赋值操作;2.两个类型不匹配的值进行比较操作(例如,"=");3.to_number函数中的值

解决sqoop报错Invalid number; item = ITEM_UNICODE

报错栈: java.sql.SQLException: Invalid number; item = ITEM_UNICODE at com.intersys.jdbc.SysList.getInt(SysList.java:1735) at com.intersys.jdbc.CacheResultSet.getInt(CacheResultSet.java:247) at org.apache.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWrit

ORA-01722: invalid number

---问题 select owner,index_name,DEGREE from DBA_INDEXES where DEGREE>1 * ERROR at line 1: --1 获取执行跟踪信息 SQL> set autotrace traceonly SQL> select owner,index_name,DEGREE from DBA_INDEXES where DEGREE=1 and rownum<2; Elapsed: 00:00:00.05 Execution

&#39;Invalid update: invalid number of rows in section xx. The number of rows contained in an existing section after the update (xxx)...

'Invalid update: invalid number of rows in section 5.  The number of rows contained in an existing section after the update (299) must be equal to the number of rows contained in that section before the update (276), plus or minus the number of rows

check_jmx4perl 1.10 findDeadlockedThreads ERROR &quot;Invalid number of operation arguments&quot;

Hi, The problem is:$ check_jmx4perl --url http://localhost:8081/jolokia --mbean java.lang:type=Threading --operation findDeadlockedThreads --null no-deadlock --string 1 --critical \!no-deadlock --critical 10UNKNOWN - Error: 400 java.lang.IllegalArgum

&#39;Invalid update: invalid number of sections. The number of sections contained in the table view aft

问题:(删除tableview中的section时) Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of sections.  The number of sections contained in the table view after the update (5) must be equal to th

ORA-01722: invalid number 异常【我改】

我的情况是,在sql中两个字段相等最为条件时,这两个字段一个类型是字符串,一个是数字,而字符串类型的字段中有一条记录不能转成为数字造成的,解决方法,用 to_char将数字类型的字段转换为字符串再比较. 转: ORA-01722: invalid number 如果某一个列定义的是varchar2字符串类型的,查询的时候使用了where xxx=1,让列名等于一个数字,那么,如果这个列里面都是数字,那么不报错,如果列里面只要有一个是非数字的,则报错.因为,oracle使用了隐式的转换,to_nu

问题:oracle 计算年龄;结果:oracle中根据生日计算年龄的问题

SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,birthday)/12,1) FROM ltteacherinfo where name='朱雪东111'这个报错ORA 00909 :invalid number of arguments这个是怎么错了,计算年龄该怎么算,年龄要整数 --计算员工年龄SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,birthdate)/12) FROM   ps_personal_data             

(转)认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件

概述 在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解.sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数. tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样.listener.ora 用在oracle