数据库

 首页 > 数据库 > Oracle > ORA-01722:invalid number的问题

ORA-01722:invalid number的问题

分享到:
【字体:
导读:
         摘要:com.ibatis.common.jdbc.exception.NestedSQLException:---Theerroroccurredin---Theerroroccurredwhileapplyingaparametermap.---Checktheoutwhbill.insertDtlHis-InlineP...

ORA-01722:invalid number的问题

com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in 
--- The error occurred while applying a parameter map.  
--- Check the outwhbill.insertDtlHis-InlineParameterMap.  
--- Check the statement (update failed).  www.2cto.com    
--- Cause: java.sql.SQLException: ORA-01722: invalid number 
 
问题是: 
 
1.更新了表结构,DTL表和DTL_HIS表,两个表的表结构相同.但位置不同,因为alter执行顺序问题? 
Sql代码  
SQL> desc TBL_DTL;  
 Name                                      Null?    Type  
 ----------------------------------------- -------- ----------------------------  
 VERSION                                            NUMBER(10)  
 MULTI_SELL                                         VARCHAR2(2)  
 EXPIRE_DATE_BEGIN                                  VARCHAR2(40)  
 EXPIRE_DATE_TO                                     VARCHAR2(40)  
 LVCARD_ID                                          VARCHAR2(13)  
 LVCARD_TYPE                                        VARCHAR2(20)  
 FR_ALERT_VAL                                     NUMBER(10)  
  
 
Sql代码  
SQL> desc tbl__dtl_his;  
 Name                                      Null?    Type  
 ----------------------------------------- -------- ----------------------------  
 VERSION                                   NOT NULL NUMBER(10)  
 MULTI_SELL                                         VARCHAR2(2)  
 FR_ALERT_VAL                                      NUMBER(10)  
 EXPIRE_DATE_BEGIN                                  VARCHAR2(40)  
 EXPIRE_DATE_TO                                     VARCHAR2(40)  
 LVCARD_ID              www.2cto.com                VARCHAR2(13)  
 LVCARD_TYPE                                        VARCHAR2(20)  
 
2.在insert语句的时候,使用了 
Sql代码  
insert into table_dtl_his (select * from table_dtl  where BILL_NO=#billNo#);  
 
3.发现问题,在执行desc table_dtl和table_dtl_his 表的时候,FR_ALERT_VAL属性的位置不同。导致查询出来的 number插入到了 varchar的字段中 
 
4.解决方案: 
Sql代码  
insert into TBL_DTL_HIS (  
select   
VERSION,MULTI_SELL,FR_ALERT_VAL,EXPIRE_DATE_BEGIN,EXPIRE_DATE_TO,LVCARD_ID,LVCARD_TYPE   
from TBL_DTL           
where BILL_NO=#billNo# )  
 
 
 
作者 xly1981
ORA-01722:invalid number的问题
分享到:
Linux平台Oracle安装报错Check if the DI...
Linux平台Oracle安装报错Check if the DISPLAY variable is set解决方法 Linux平台Oracle安装报错Check if the DISPLAY variable is set解决方法   在Oracle Linux 6.1 上安装Oracle 11.2.0.3, 在运行runInstaller 时报错。 具体如下: [root@dave mnt]# xhost + access control disabled, clients canconnect from any...
提示"数据库状态当前不可用可能是因为数...
提示"数据库状态当前不可用可能是因为数据库的状态为装载或不装载"的解决办法 提示"数据库状态当前不可用可能是因为数据库的状态为装载或不装载"解决办法   安装完时EM能够正常访问。自从客户改了sys密码后,通过WEB登上EM,英文版本报"The database status is currently unavailable. It is possible that the database...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……