`
xly1981
  • 浏览: 147164 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

诡异的ORA-01722: invalid number

阅读更多
http://sanyuesan3.taobao.com/

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). 
--- Cause: java.sql.SQLException: ORA-01722: invalid number

问题是:
1.更新了表结构,DTL表和DTL_HIS表,两个表的表结构相同.但位置不同,因为alter执行顺序问题?
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> 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                                          VARCHAR2(13)
 LVCARD_TYPE                                        VARCHAR2(20)

2.在insert语句的时候,使用了
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.解决方案:
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# )
分享到:
评论

相关推荐

    oracle+ora-各种常见java.sq

    - `java.sql.SQLException: ORA-01555: snapshot too old: rollback segment number with name "" too small`: 回滚段不足以支持事务回滚。可能需要增大回滚段大小或者优化事务处理。 11. **内存问题** - `java....

    oracle变更数据表字段类型

    1. **ORA-22858: invalid alteration of datatype** - 这个错误通常发生在尝试直接改变字段类型时,特别是在从固定长度的类型(如`VARCHAR2`)转换到变长类型(如`CLOB`)时。 - 解决方案是先创建一个新的字段,...

    Oracle常用异常代码

    INVALID_NUMBER (ORA-01722) **异常描述:** 当尝试将非数字字符串转换为数值类型时触发此异常。 **解决方法:** - 在转换之前验证输入数据是否为有效的数字格式。 - 使用适当的错误处理逻辑来捕获并处理此类异常...

    oracle错误代码大全

    #### ORA-00018: Instance number out of range - **解释**: 当指定的实例号超出范围时发生。 - **解决方案**: 确认实例号正确无误。 #### ORA-00019: Invalid instance name - **解释**: 指定的实例名称无效。 -...

    oracle 错误一览表

    #### ORA-00023: Redo log file number not in range - **描述**:重做日志文件编号超出范围。 - **解决方法**:确认重做日志文件配置正确且所有文件都存在。 #### ORA-00024: Mode does not allow dropping - **...

    SQLException

    7. **ORA-01722: invalid number** - **含义**:在SQL语句中,字符串转换为数字失败,因为该字符串不是有效的数字格式。 - **解决方法**:确保所有的数值输入都是正确的格式。 8. **ORA-06530: ACCESS_INTO_NULL...

    Oracle_Errors描述

    6. **ORA-01722: invalid number** 当试图将非数字字符串转换为数字,或者数字格式不正确时,会触发此错误。确保数据类型匹配或输入数据的格式正确即可避免。 7. **ORA-00911: invalid character** 在SQL语句中发现...

    Oracle错误一览表

    #### ORA-00063: Log file number string not found 当指定的日志文件号不存在时,会触发此错误。这通常发生在日志切换或重做日志文件丢失时,需要检查日志文件的状态,并确保所有文件都可用。 #### ORA-00067: ...

    预定义异常

    7. **INVALID_NUMBER (ORA-01722)** - 描述:字符到数字的转换失败。 - 举例:尝试将非数字字符串转换为数值类型。 8. **LOGIN_DENIED (ORA-01017)** - 描述:使用无效的用户名或密码登录Oracle。 - 举例:当...

    oracle 10g错误代码手册

    - **ORA-01722: invalid number** - **含义**:输入的数值格式不正确。 - **解决方法**:检查并修正输入的数值。 #### 六、文档使用须知 - **版权信息**:文档受版权保护,不得非法复制或传播。 - **保密条款**...

    oracle异常(最全异常收集)

    #### ORA-1722:INVALID_NUMBER - **异常说明**:无效数字。 - **常见原因**: - 将非数字字符转换为数字类型时失败。 - 输入的数据格式不正确。 - **解决方案**: - 确保输入的数据是有效的数字格式。 - 使用...

    oracle异常处理

    7. `Invalid_number` (ora-01722):尝试将非法字符串转换为数字。 8. `No_data_found` (ora-01403):SELECT INTO 未返回任何行,或引用了未初始化的索引表元素。 9. `Too_many_rows` (ora-01422):SELECT INTO 语句...

    SQL LOADER错误小结

    **错误2:ORA-01722: invalid number** 当尝试将包含换行符的数据导入到NUMBER类型字段时,可能会遇到此错误。如果最后一个字段是NUMBER类型,换行符会被当作数值的一部分,导致解析错误。解决方法是在控制文件中...

    Oracle Exception汇总(自定义Oracle异常)

    9. **INVALID_NUMBER** (ORA-01722): 当尝试将非数字字符串转换为数字时,如果转换失败,Oracle会抛出此异常。在处理数据时,需要验证输入的格式是否正确。 10. **LOGGIN_DENIED** (ORA-01017): 提供的用户名和密码...

    oracle异常总结

    - `INVALID_NUMBER`(ora-01722):尝试将非数字字符串转换为数字时抛出。 - `ZERO_DIVIDE`(ora-01476):执行除法运算时,若除数为0则抛出。 - `ACCESS_INFO_NULL`(ora-06530):访问未初始化的对象时抛出。 - `...

    ORACLE 异常错误处理

    - `ORA-1722 Invalid-NUMBER`:转换一个数字失败。 - `ORA-6500 Storage-error`:内存不够引发的内部错误。 - `ORA-6501 Program-error`:内部错误。 - `ORA-6502 Value-error`:转换或截断错误。 - `ORA-6504 ...

    oracle常见Exception

    当尝试将非数字字符串转换为数字类型时,系统会抛出`INVALID_NUMBER`(ORA-01722)异常。 **解决方法:** 1. **验证输入**:确保所有用于数值计算的输入都是有效的数字格式。 2. **使用TRY/CATCH结构**:通过TRY/...

    guess-game-jinja:18。ora,befejezes

    print("Invalid input. Please enter a number.") ``` 7. **游戏逻辑优化**:可能还涉及到游戏的复杂性,如设置猜测次数限制,显示剩余尝试次数,或提供退出游戏的选项等。 在压缩包文件`guess-game-jinja-main`...

    Oracle21个预定义异常

    - **错误代码**:ORA-01722 - **场景示例**:在执行涉及数字计算的查询时,若某字段值非数字格式,将导致此异常。 #### 8. LOGINDENIED - **异常描述**:提供的登录凭证(用户名或密码)不正确时触发。 - **错误...

Global site tag (gtag.js) - Google Analytics