oracle學習筆記 寫儲存過程時可能用到的

2021-06-10 18:56:54 字數 1229 閱讀 1537

1、全形、半形互**

to_single_byte(c)轉換成半形

to_multi_byte(c)轉換成全角

2、使用正規表示式去除非數字、中文字元自定義函式:

create or replace function fn_reg_replaceother(str1 varchar2) return  varchar2

ist_str varchar2(300);

begin

--替換空格、,。,.等字元

t_str:=regexp_replace(t_str,'[[:punct:]|[:blank:]|[:space:]|[:cntrl:]]','') ;

return t_str;

end fn_reg_replaceother;

3、使用正規表示式去掉多字元連線時中間多個「,「號,如a,b,,c,d,e,,,, 去掉後結果為:a,b,c,d,e

create or replace function fn_reg_replace(str1 varchar2) return  varchar2

ist_str varchar2(1000);

begin

t_str := regexp_replace(str1, '(,)',',');

return regexp_replace(t_str,'(^\,|\,$)','');

end fn_reg_replace;

4、只提取某一字段中的中文部分

translate(欄位名, '*0123456789','*')

如:select translate('中國人123456是最棒的8899', '*0123456789','*') from dual ;

結果:中國人是最棒的

5、只提取某一字段中的數字部分

translate(欄位名, '0'||translate(欄位名, '*0123456789','*') ,'0')

如:select translate('中國人123456是最棒的8899', '0'||translate('中國人123456是最棒的8899', '*0123456789','*') ,'0') from dual ;

結果:1234568899

6、where子句中case妙用

where  字段=(case when 1=1(你想加的條件)  then (你想取的值)end)

說明:效果是如果沒有你要的條件,相當於沒有where子句限制。

oracle學習筆記 儲存過程

一 概述 oracle儲存過程開發的要點是 使用notepad文字編輯器,用oraclepl sql程式語言寫乙個儲存過程 在oracle資料庫中建立乙個儲存過程 在oracle資料庫中使用sql plus工具執行儲存過程 在oracle資料庫中修改儲存過程 通過編譯錯誤除錯儲存過程 刪除儲存過程 ...

oracle儲存過程學習筆記

建乙個不帶任何引數儲存過程 輸出系統日期 create or replace procedure output date is begin dbms output.put line sysdate end output date 執行這個儲存過程 begin output date end 建一張表...

ORACLE 儲存寫儲存過程總結

step01 需要建立乙個package 例如 create or replace package package name is end package name 這一步只是建立乙個package。step02 為建立好的package建立包體 例如 create or replace packa...