sql语句如下
select * from yhb_h t where t.user_id=56456464
在执行检索数据的时候报如下的错误
java.sql.SQLException: ORA-01722: 无效数字 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1062) at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132) at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4055) at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4195) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1279) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
原因是user_id字段是varchar2类型的,里面正常是都是数字,但是有个别人录入数据的时候里面录了字母。
ORACLE将where t.user_id=56456464解释为where to_number(t.user_id)=56456464
所以进行全表扫描的时候就在将user_id转成数值的时候报错了。
解决的方法是将sql改成
select * from yhb_h t where t.user_id='56456464'
相关推荐
### Oracle报错大全(珍藏版) #### ORA-00001: Unique Constraint Violated 当尝试插入或更新违反唯一约束的数据时触发此错误。例如,在具有唯一索引的列上插入重复数据。 #### ORA-00017: Rollback Segment Full...
- **ORA-00911:无效字符**:检查SQL语句中的字符是否合法,特别是字符串常量的引号。 4. 预防措施 - **定期备份**:定期进行数据库备份,以防数据丢失。 - **性能监控**:通过工具如DBA_HIST views监控数据库...
### ORA-01722: 无效数字 当尝试将非数字字符转换为数字时,会出现这个错误。确保输入数据的格式正确,避免非数字字符混入数字字段。 ### ORA-01776: 无法通过连接视图修改多个基表 此错误发生在试图通过连接视图...
Oracle数据库是世界上最流行的数据库管理系统之一,它用于存储、管理和检索数据。在处理Oracle数据库时,可能会遇到各种错误,这些错误通常以ORA-错误代码的形式出现。以下是一些常见的Oracle错误及其详细解释: 1....
Oracle数据库是全球广泛使用的数据库管理系统,它提供了丰富的SQL(结构化查询语言)和PL/SQL(过程化语言/SQL)工具来支持数据管理和应用程序开发。本文将深入探讨Oracle中的SQL和PL/SQL语言,以及它们在数据库管理...
错误代码在Oracle数据库中通常以两位或三位数字表示,如ORA-00001、ORA-600等。这些代码代表了特定的错误类型,例如数据一致性问题、系统资源不足、网络连接故障等。错误代码的前缀“ORA-”是Oracle的专属标识,后面...
1. **错误代码**:这是特定错误的唯一标识符,例如"ORA-00001",通常以"ORA-"开头,后面跟着五位数字。 2. **错误消息**:当错误发生时,数据库系统会显示的一段描述性文本,解释了错误的原因和可能的影响。 3. **...
Oracle错误通常以“ORA-####”的形式出现,其中“####”是四位数字的错误代码。每个错误代码都有一个独特的含义,反映了数据库在执行操作时遇到的具体问题。例如,"ORA-00922: 选项无效"表示在SQL语句中使用的某个...
在Oracle数据库中,错误码通常以数字形式出现,如ORA-00001到ORA-65535,其中前缀"ORA-"是Oracle错误的标识,数字部分则代表具体的错误类型。错误码大全中,你可以找到如下的信息: 1. 错误码:错误码的具体数值,...
- **错误描述**:导出过程中,Oracle无法从数据字典中检索到特定列的信息,这可能意味着表已被删除或数据字典本身存在问题。 - **解决方案**:尝试重新执行导出操作,如果错误持续出现,应报告给Oracle Support ...
通过对Oracle基础教程中关于SQL命令分类的介绍,我们可以了解到SQL不仅是一种强大的数据检索工具,也是管理数据库结构和数据的重要手段。掌握这些基本概念对于使用Oracle数据库进行高效的数据管理和操作至关重要。...
- **2.4.1 SQL**: 结构化查询语言,用于检索和管理数据。 - **2.4.2 PL/SQL**: Oracle的内置编程语言,增强SQL的功能。 - **2.4.3 数据库管理工具**: 包括SQL*Plus和其他管理工具,用于日常管理和监控。 **2.5 ...
视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典...
索引可以加速数据检索过程,特别是对于大型数据库来说。通过索引,可以直接定位到数据所在的块,从而快速访问表中的数据块。 #### 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 - **Fact Table**:存储...
文档中还列举了一系列常用的Oracle数据库管理任务示例,包括数据文件的恢复、session的管理、字符集的修改、表空间的扩展、无效对象的查询等,这些示例涵盖了数据库日常管理的各个方面,对于DBA来说是非常实用的参考...
Oracle数据库中,rownum是用于分页查询的关键字,可以方便地进行数据检索和删除重复记录。例如,通过rownum可以实现只选择每个分组的第一条记录,从而消除重复数据。 解锁Oracle中的锁定账号,如scott,可以使用...
`NOT EXISTS`在某些情况下比`NOT IN`更快,尤其是在处理大量数据时。 3. `<>`或`!=`操作符可能导致全表扫描,因此应避免使用,可以用`或`>`替换。例如,`WHERE column > value1 OR column 代替`WHERE column <> ...