dbms_utility的兩個有用方法
我們在編寫PL/SQL程式碼的時候,經常遇到一些常用程式碼功能,比如進行字串轉化、獲取當前CPU時間等等。這些程式碼如果自己編寫,不但消耗時間而且效率和正確性也得不到保證。
作為一門成熟的開發語言,PL/SQL也提供了很多工具包和方法庫。其中dbms_utility就是其中比較重要的一個。如同名稱所示,其中包括了很多常用的工具方法,熟悉這些方法會大大幫助我們進行Oracle開發。這次我們簡單介紹一下table_to_comma和comma_to_table兩個對照方法。
方法功能簽名介紹
我們經常要對字串進行變化操作,比如把一個用逗號“,”分割的字串拆分為陣列。或者把字元陣列組合為用逗號“,”分割的字串。dbms_utility包提供的這兩個方法就可以方便的實現該型別功能。
首先介紹一下兩個方法的簽名。
//實現將陣列轉化為字串
PROCEDURE table_to_comma( tab IN lname_array,
tablen OUT BINARY_INTEGER,
list OUT VARCHAR2);
//實現將字串轉化為陣列
PROCEDURE comma_to_table( list IN VARCHAR2,
tablen OUT BINARY_INTEGER,
tab OUT lname_array);
此處,使用了一個型別為lname_array的自定義型別,需要額外注意下。該型別使用的全名為dbms_utility.lname_array,定義為:
type lname_array IS table of VARCHAR2(4000) index by BINARY_INTEGER;
-- Lists of Long NAME should be stored here, it includes fully
-- qualified attribute names.
lname_array為一個典型的字串陣列,用來儲存處理的陣列資料。lname_array是一個提升版本。在dbms_utility包中,還能夠看到版本型別uncl_array,作為相容版本。
程式碼示例
兩個包方法是用的方法很簡單,透過一個程式碼片段我們可以瞭解。
set serveroutput on size 10000;
declare
t_vararray dbms_utility.lname_array;
vc_stringlist varchar2(4000);
n_idx binary_integer;
begin
--comma to table
vc_stringlist := 'dkf,dddl,fewe,klkj';
dbms_utility.comma_to_table(vc_stringlist,
n_idx,
t_vararray);
dbms_output.put_line('Total Num : '||to_char(n_idx));
for i in 1..n_idx loop
dbms_output.put_line(t_vararray(i));
t_vararray(i) := '['||t_vararray(i)||']';
end loop;
--table to comma
dbms_utility.table_to_comma(t_vararray,
n_idx,
vc_stringlist);
dbms_output.put_line('');
dbms_output.put_line(''||vc_stringlist);
end;
/
上述程式碼就實現了將字串每個逗號字元用方括號進行封裝的需要。執行結果為:
Total Num : 4
dkf
dddl
fewe
klkj
[dkf],[dddl],[fewe],[klkj]
PL/SQL procedure successfully completed
Executed in 0 seconds
瞭解一門語言是一個長期的過程,除了語句語法和語句特點,還要儘可能瞭解語言預設提供的一些方法包。利用好這些方法,可以大幅度提高我們的開發效率和質量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-689316/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql備份時候兩個很有用的引數MySql
- dbms_utility
- DBMS_Utility學習
- 發現ThinkPHP裡面隱藏了幾個有用的方法PHP
- 8個有用的JS技巧JS
- 8 個有用的 JS 技巧JS
- 20 個有用的 SVG 工具SVG
- oracle幾個有用的命令Oracle
- 有用的幾個網站網站
- 幾個有用的Function.Function
- 交換兩個資料的三種方法
- 不能執行兩個指令碼的方法指令碼
- JavaScript中有用的Array和Object方法JavaScriptObject
- 五個有用的jquery小技巧jQuery
- 幾個有用的JSON工具JSON
- 九個PHP很有用的功能PHP
- 8個有用的jQuery Mobile教程jQuery
- 面試題-JavaScript交換兩個變數的方法面試題JavaScript變數
- GridView傳遞兩個引數的方法View
- Xcode build慢的兩個解決方法XCodeUI
- Python:兩個使用單例模式的方法Python單例模式
- 設定隨機顏色的兩個方法隨機
- 1.Javascript擷取字串的兩個方法JavaScript字串
- 4個非常有用的 Flutter 技巧Flutter
- 24個有用的PHP類庫分享PHP
- 管理Websphere的10個有用命令Web
- 8個非常有用的CSS工具CSS
- 20個很有用的PHP類庫PHP
- 分享兩個特別有用的 vscode快捷鍵 觸發提示以及顯示懸停VSCode
- dbms_stat, dbms_utility與analyze的區別
- python 列表轉為字典的兩個小方法Python
- C#中遍歷TreeView的兩個常用方法C#View
- [Shell] Input null到檔案中的兩個方法Null
- 19 個 JavaScript 有用的簡寫技術JavaScript
- 10個超級有用的Python工具!Python
- 五個最有用的Python技巧 - dannysteenmanPython
- 20個非常有用的Java程式片段Java
- 24個有用的PHP類庫分享(上)PHP