1. 程式人生 > >Oracle內建函式SQLCODE和SQLERRM的使用

Oracle內建函式SQLCODE和SQLERRM的使用

 Oracle內建函式SQLCODE和SQLERRM是特別用在OTHERS處理器中,分別用來返回Oracle的錯誤程式碼和錯誤訊息。
  
  OTHERS處理器應該是異常處理塊中的最後的異常處理器,因為它是用來捕獲除了別的異常處理器處理以外的所有的Oracle異常,所以在程式的最外層使用一個OTHERS處理器的話,將可以確保所有的錯誤都會被檢測到。
  
  在一個內在的異常中,SQLCODE返回Oracle錯誤的序號,而SQLERRM返回的是相應的錯誤訊息,錯誤訊息首先顯示的是錯誤程式碼。SQLCODE返回的是負數,除非Oracle的錯誤為“ORA-01403:NO DATA FOUND”(譯:ORA-01403:未找到資料),當Oracle錯誤為“ORA-01403:NO DATA FOUND”時,其對應的SQLCODE為+100。對於使用者自定義的異常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception。
  
  一個Oracle的錯誤訊息最多隻能包含512個位元組的錯誤程式碼。

      如果沒有異常被觸發,則SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。

      例項
      Exception
         when osi_general_error then
         when OTHERS THEN
               out_ErrorMsg := SUBSTR(SQLERRM,1,100);
               out_ErrorNbr := ABS(SQLCODE);

相關推薦

Oracle函式SQLCODESQLERRM的使用

 Oracle內建函式SQLCODE和SQLERRM是特別用在OTHERS處理器中,分別用來返回Oracle的錯誤程式碼和錯誤訊息。    OTHERS處理器應該是異常處理塊中的最後的異常處理器,因為它是用來捕獲除了別的異常處理器處理以外的所有的Oracle異常,所以在程式的

Oracle 異常處理函式SQLCODESQLERRM

/* 異常處理函式 異常處理函式用於取得Oracle錯誤號和錯誤資訊,其中函式SQLCODE用於取得錯誤號,SQLERRM用於取得錯誤資訊 另外,通過使用內建過程raise_application_error,可以在建立子程式(過程、函式、包)時自定義錯誤號和錯誤資訊 */ declar

ORACLE 函式之 GREATEST LEAST(求多列的最大值,最小值)

轉載自:http://dlblog.iteye.com/blog/1274005 Oracle比較一列的最大值或者最小值,我們會不假思索地用MAX和MIN函式,但是對於比較一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有內建函式實現這個功能:COALESCE / GREATES

函式——filtermap

filter filter()函式接收一個函式 f 和一個list,這個函式 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。 例如,要從一個list [1, 4, 6, 7, 9, 12, 1

十七、Oracle函式

                        

MySQL函式uuiduuid_short

用法           簡單看到,這個值,每次執行都是不同的。 生成規則 第1 2 3 段是與時間有關的。 time_low、time_mid、time_high_and_version轉成16進位制後分別對應第1 2 3段。這個時間是從1582-10-15

函式enumeratezip

enumerate(sequence, start=0) 返回一個列舉物件。 sequence必須是序列, 迭代器或其他支援迭代的物件。 next()返回的迭代器的 方法enumerate()返回一個包

jQuery函式mapeach的用法

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                $.map的運用var arr1 = [0, 3, 5];var arr2 = $.map(arr1, function (item) { return ite

Python兩個函式——locals globals

這兩個函式主要提供,基於字典的訪問區域性和全域性變數的方式。 在理解這兩個函式時,首先來理解一下python中的名字空間概念。Python使用叫做名字空間的 東西來記錄變數的軌跡。名字空間只是一個字典,它的鍵字就是變數名,字典的值就是那些變 量的值。實際上,名字空間可以象Python的

Python兩個函式locals globals

這兩個函式主要提供,基於字典的訪問區域性和全域性變數的方式。在理解這兩個函式時,首先來理解一下python中的名字空間概念。Python使用叫做名字空間的東西來記錄變數的軌跡。名字空間只是一個字典,它的鍵字就是變數名,字典的值就是那些變量的值。實際上,名字空間可以象Python的字典一樣進行訪問每個函式都有著

Python函式__import__eval用法

由模組的名稱(字串)動態地去呼叫函式 import glob,os modules = [] for module_file in glob.glob("*-plugin.py"): try: module_name,ext = os.path.s

golang 函式new()make()的區別

Go語言中的內建函式new和make是兩個用於記憶體分配的原語(allocation primitives),其功能相似,卻有本質區別。 new和make的區別 new 官方文件 // The new built-in function

置函數SQLCODESQLERRM的使用

代碼 ber strong 成功 exc 操作 font c程序 bms 在我們寫proc程序中經常要有錯誤處理,在錯誤處理中我們經常要輸出錯誤信息來給幫助我們分析和解決錯誤原因,從而更正數據。這時候就會用到SQLCODE和SQLERRM. SQLCode:數據庫操作的返回

函式常用模組【day04】:函式(十)

一、36-40 36、isinstance(object, classinfo) 功能:用於判斷,物件是否是某個類的例項 # s = "alex" # 物件,"alex" => str s = [11,11,11] # 用於判斷,物件是否是某個類的例項 r = isinsta

【轉】Python 函式 locals() globals()

Python 內建函式 locals() 和globals() 轉自: https://blog.csdn.net/sxingming/article/details/52061630

《零基礎入門學習Python》(21)--函式:lambda表示式(BIF filte()map())

前言 接下來學習怎麼建立匿名函式 知識點 lambda 表示式 Python 允許使用lambda關鍵字建立匿名函式 lambda 函式怎麼使用?  單個引數 >>> def add(x): retur

函式裝飾器

內建函式補充 callable()   #檢測一個東西能否被呼叫 def f1():     pass f2 =123 print(callable(f1)) print(callable(f2)) # chr() 數字

Oracle SQL 函式大全(轉)

SQL中的單記錄函式 1.ASCII 返回與指定的字元對應的十進位制數;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A    &n

python中的sort()方法函式sorted()的區別

一,sort()方法 python中 sort()是列表的內建函式,一般不寫引數(取預設值),無返回值,sort()會改變列表,原地排序,因此無需返回值。字典、元組、字串不具有sort()方法,如果呼叫將會返回一個異常。 >>> help(li

Day16--作業(函式函式的遞迴)

1.將names = ['egon','alex_sb','wupeiqi','yuanhao']中的名字全部變大寫 names = ['egon','alex_sb','wupeiqi','yuan