最近使用Oracle時老是遇到java.sql.SQLException錯誤,害得我在網上查得累死累活的,所以一口氣查了一下幾個常見的,在此列了列.英文是來自官方的,用中文簡單翻譯了一下,有一些實在不知道怎麼翻譯,也沒有嘗試重現,所以將英文原文一並列出,供有需要的人查閱!
ORA-00904: invalid column name 無效列名
ORA-00942: table or view does not exist 表或者視圖不存在
ORA-01400: cannot insert NULL into () 不能將空值插入
ORA-00936: 缺少表達式
ORA-00933: SQL 命令未正確結束
ORA-01722: 無效數字:(一般可能是企圖將字符串類型的值填入數字型而造成)
ORA-06530: ACCESS_INTO_NULL
Your program attempts to assign values to the attributes of an uninitialized (atomically null) object.
企圖將值寫入未初化對象的屬性
ORA-06592: CASE_NOT_FOUND
None of the choices in the WHEN clauses of a CASE statement is selected, and there is no ELSE clause.
case語句格式有誤,沒有分支語句
ORA-06531: COLLECTION_IS_NULL
Your program attempts to apply collection methods other than EXISTS to an uninitialized (atomically null)
nested table or varray, or the program attempts to assign values to the elements of an uninitialized nested
table or varray.
企圖將集合填入未初始化的嵌套表中
ORA-06511: CURSOR_ALREADY_OPEN
Your program attempts to open an already open cursor. A cursor must be closed before it can be reopened. A
cursor FOR loop automatically opens the cursor to which it refers. So, your program cannot open that cursor
inside the loop.
企圖打開已經打開的指針.指針已經打開,要再次打開必須先關閉.
ORA-00001: DUP_VAL_ON_INDEX
Your program attempts to store duplicate values in a database column that is constrained by a unique index.
數據庫字段存儲重復,主鍵唯一值沖突
ORA-01001: INVALID_CURSOR 無效指針
Your program attempts an illegal cursor operation such as closing an unopened cursor.
非法指針操作,例如關閉未打開的指針
ORA-01722: INVALID_NUMBER 無效數字
In a SQL statement, the conversion of a character string into a number fails because the string does not
represent a valid number. (In procedural statements, VALUE_ERROR is raised.) This exception is also raised
when the LIMIT-clause expression in a bulk FETCH statement does not evaluate to a positive number.
在sql語句中,字符數字類型轉換錯誤,無法將字符串轉化成有效數字.此錯誤也可能因為在limit從句表達式中fetch語句無法對應指定數字
ORA-01017: LOGIN_DENIED 拒絕訪問
Your program attempts to log on to Oracle with an invalid username and/or password.
企圖用無效的用戶名或密碼登錄oracle
ORA-01403: NO_DATA_FOUND 無數據發現
A SELECT INTO statement returns no rows, or your program references a deleted element in a nested table or
an uninitialized element in an index-by table. SQL aggregate functions such as AVG and SUM always return a
value or a null. So, a SELECT INTO statement that calls an aggregate function never raises NO_DATA_FOUND.
The FETCH statement is expected to return no rows eventually, so when that happens, no exception is raised.
ORA-01012: NOT_LOGGED_ON 未登錄
Your program issues a database call without being connected to Oracle.
程序發送數據庫命令,但未與oracle建立連接
ORA-06501: PROGRAM_ERROR 程序錯誤
PL/SQL has an internal problem.
pl/sql系統問題
ORA-06504: ROWTYPE_MISMATCH 行類型不匹配
The host cursor variable and PL/SQL cursor variable involved in an assignment have incompatible return types.
For example, when an open host cursor variable is passed to a stored subprogram, the return types of the
actual and formal parameters must be compatible.
ORA-30625: SELF_IS_NULL
Your program attempts to call a MEMBER method on a null instance. That is, the built-in parameter SELF
(which is always the first parameter passed to a MEMBER method) is null.
ORA-06500: STORAGE_ERROR 存儲錯誤
PL/SQL runs out of memory or memory has been corrupted.
PL/SQL運行內存溢出或內存沖突
ORA-06533: SUBSCRIPT_BEYOND_COUNT 子句超出數量
Your program references a nested table or varray element using an index number larger than the number of
elements in the collection.
ORA-06532: SUBSCRIPT_OUTSIDE_LIMIT 子句非法數量
Your program references a nested table or varray element using an index number (-1 for example) that is
outside the legal range.
ORA-01410: SYS_INVALID_ROWID 無效的字段名
The conversion of a character string into a universal rowid fails because the character string does not
represent a valid rowid.
ORA-00051: TIMEOUT_ON_RESOURCE 資源等待超時
A time-out occurs while Oracle is waiting for a resource.
ORA-01422: TOO_MANY_ROWS 返回超過一行
A SELECT INTO statement returns more than one row.
ORA-06502: VALUE_ERROR 值錯誤
An arithmetic, conversion, truncation, or size-constraint error occurs. For example, when your program selects
a column value into a character variable, if the value is longer than the declared length of the variable,
PL/SQL aborts the assignment and raises VALUE_ERROR. In procedural statements, VALUE_ERROR is raised if the
conversion of a character string into a number fails. (In SQL statements, INVALID_NUMBER is raised.)
ORA-01476: ZERO_DIVIDE 除0錯誤