访问 Oracle 数据库的 JDBC 中的一些最常见的错误。“示例代码和/或注释”列中的示例显示了导致这种错误的 SQL 语句类型或提供了关于表中的该行上显示的特定错误的其他注释。
表 1
错误标记 | Oracle 错误 | SQLState | 示例代码和/或注释 |
基于语句:SELECT ename FROM emp 变种的 SQL 相关错误 | |||
“唯一性约束” | 1 | 2300 | 例如主键违规 |
“资源忙且指定 NOWAIT 获取资源” | 54 | 61000 | 只有在指定了 NOWAIT 时才出现 |
“无效的 SQL 语句” | 900 | 42000 | ename FROM emp |
“无效的表名” | 903 | 42000 | SELECT ename FROM |
“无效的标识符” | 904 | 42000 | SELECT empname FROM emp |
“无效的字符” | 911 | 42000 | SELECT ename FROM emp; |
“缺少列” | 917 | 42000 | 在 INSERT 语句中需要逗号来分隔列时遗漏逗号可能是一个原因。 |
“在期望的位置没有找到 FROM 关键字” | 923 | 42000 | SELECT ename emp |
“缺少表达式” | 936 | 42000 | SELECT FROM emp |
“表或视图不存在” | 942 | 42000 | SELECT ename FROM empp |
“不能插入空值” | 1400 | 23000 | 试图向包含 NOT NULL 约束的列中插入空值 |
“值大于该列的指定精度” | 1438 | 22003 | 试图插入比列允许的精度更多的数字位数 |
“无效的数字” | 1722 | 42000 | 试图对字符执行数值函数 |
“完整性约束失败” | 2291 | 23000 | 试图插入包含与现有主键不匹配的外键的行 |
“值太大,” | 12899 | 72000 | 试图插入超出列允许范围的的值(例如过多的字符) |
“Io 异常” | 17002 | 无 | 来源于 Oracle JDBC 驱动程序的错误没有对应的 SQLState (null) |
“无效的列索引” | 17003 | 无 |
|
“无效的列名” | 17006 | 无 |
|
“数值溢出” | 17026 | 无 |
|