Oracle 資料庫異常類型及代碼

來源:互聯網
上載者:User
Oracle 資料庫異常類型及代碼
 
Exception  Oracle  Error  SQLCODE  Value    
ACCESS_INTO_NULL  
 ORA-06530  
 -6530  
   
CASE_NOT_FOUND  
 ORA-06592  
 -6592  
   
COLLECTION_IS_NULL  
 ORA-06531  
 -6531  
   
CURSOR_ALREADY_OPEN  
 ORA-06511  
 -6511  
   
DUP_VAL_ON_INDEX  
 ORA-00001  
 -1  
   
INVALID_CURSOR  
 ORA-01001  
 -1001  
   
INVALID_NUMBER  
 ORA-01722  
 -1722  
   
LOGIN_DENIED  
 ORA-01017  
 -1017  
   
NO_DATA_FOUND  
 ORA-01403  
 +100  
   
NOT_LOGGED_ON  
 ORA-01012  
 -1012  
   
PROGRAM_ERROR  
 ORA-06501  
 -6501  
   
ROWTYPE_MISMATCH  
 ORA-06504  
 -6504  
   
SELF_IS_NULL  
 ORA-30625  
 -30625  
   
STORAGE_ERROR  
 ORA-06500  
 -6500  
   
SUBSCRIPT_BEYOND_COUNT  
 ORA-06533  
 -6533  
   
SUBSCRIPT_OUTSIDE_LIMIT  
 ORA-06532  
 -6532  
   
SYS_INVALID_ROWID  
 ORA-01410  
 -1410  
   
TIMEOUT_ON_RESOURCE  
 ORA-00051  
 -51  
   
TOO_MANY_ROWS  
 ORA-01422  
 -1422  
   
VALUE_ERROR  
 ORA-06502  
 -6502  
   
ZERO_DIVIDE  
 ORA-01476  
 -1476  
   
no_data_found
表示select沒有查詢到滿足條件的資料行。
others
表示Oracle預定義錯誤範圍之外的任何錯誤,Oracle用這個"others"捕捉所有 未知的錯誤。可以使用sqlcode函數,sqlerrm函數在錯誤處理模組中顯示錯誤 代碼和錯誤資訊。而且,others處理必須是一個塊的最後一個錯誤處理,否則, others處理的優先順序比較高,權利比較大,它會捕捉所有錯誤,包括預定義的Oracle 錯誤和非預定義的Oracle錯誤。
too_many_rows
Oracle的隱式遊標,一次只能檢索一行資料,使用隱式遊標時,異常處理機制如果檢測 到遊標返回的資料是多行資料,它就拋出too_many_rows類型的異常。
dup_val_on_index
在某個索引上,出現重複值。
value_error
在某個目標欄位中,放入的資料長度或者資料範圍,超出目標欄位定義的長度或者範圍 ,如,把'8613905180088'這個字串插入userid欄位中,而userid定義為varchar2(10), 就會出現這種異常。 
 
Brief  descriptions  of  the  predefined  exceptions  follow:  
 
Exception  Raised  when  ...    
ACCESS_INTO_NULL  
 Your  program  attempts  to  assign  values  to  the  attributes  of  an  uninitialized  (atomically  null)  object.  
   
CASE_NOT_FOUND  
 None  of  the  choices  in  the  WHEN  clauses  of  a  CASE  statement  is  selected,  and  there  is  no  ELSE  clause.  
   
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.  
   
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.  
   
DUP_VAL_ON_INDEX  
 Your  program  attempts  to  store  duplicate  values  in  a  database  column  that  is  constrained  by  a  unique  index.  
   
INVALID_CURSOR  
 Your  program  attempts  an  illegal  cursor  operation  such  as  closing  an  unopened  cursor.  
   
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.  
   
LOGIN_DENIED  
 Your  program  attempts  to  log  on  to  Oracle  with  an  invalid  username  and/or  password.  
   
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.  
   
NOT_LOGGED_ON  
 Your  program  issues  a  database  call  without  being  connected  to  Oracle.  
   
PROGRAM_ERROR  
 PL/SQL  has  an  internal  problem.  
   
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.  
   
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.  
   
STORAGE_ERROR  
 PL/SQL  runs  out  of  memory  or  memory  has  been  corrupted.  
   
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.  
   
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.  
   
SYS_INVALID_ROWID  
 The  conversion  of  a  character  string  into  a  universal  rowid  fails  because  the  character  string  does  not  represent  a  valid  rowid.  
   
TIMEOUT_ON_RESOURCE  
 A  time-out  occurs  while  Oracle  is  waiting  for  a  resource.  
   
TOO_MANY_ROWS  
 A  SELECT  INTO  statement  returns  more  than  one  row.  
   
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.)  
   
ZERO_DIVIDE  
 Your  program  attempts  to  divide  a  number  by  zero.  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.