ORACLE 常用指令碼

2022-03-12 20:36:31 字數 1919 閱讀 4576

--ifelse

declare

v_num number;

begin

v_num := 100;

if v_num > 100 then

--elsif v_num > 50 then

--else

--end if;

end;

--帶引數儲存過程

create or replace procedure delete_subscriber(p_subid in number) is

v_mem varchar2(100) := '';

begin

--。。。

end delete_subscriber;

/--不帶引數儲存過程

create or replace procedure delete_subscriber is

v_mem varchar2(100) := '';

begin

--。。。

end delete_subscriber;

/--帶引數的函式

其中return字句是必須存在的,乙個函式如果沒有執行return字句就結束語句會發生錯誤

create or replace function get_productstr(p_subid in number, p_paydt date)

return varchar2 is

result varchar2(1024);

begin

merge_str := '';

for v_p in c_productinfo loop

merge_str := merge_str || v_p.productnamestr || '[r:' || v_p.monthfee || ']. ';

end loop;

return result;

end;

/--函式可以有預設值

create or replace function countrynumber(n_max number default 10000,n_min number default 10)

return varchar2 is

v_resultvalue vacharr2(50);

begin

return  v_resultvalue;

end;

--異常處理例子

declare

v_num number(2) := 10;

v_zero number(2) := 0;

v_result number(5);

begin

v_result := v_num / v_zero;

exception

when zero_divide then

dbms_output.put_line('divide zero');

end;

異常說明:

dup_val_index:違反唯一性

login_denied: 登陸失敗,使用者名稱密碼錯誤

no_data_found:沒有發現資料存在

too_many_rows:資料行太多,

zero_divide:除數為0錯誤

value_error: 演算法或轉換錯誤

case_not_found: 在case語句中發現不匹配的when語句

declare

e_overnumber exception;

begin

if v_max < v_num then

-- deal....

raise e_overnumber;

end if exception

when e_overnumber then dbms_output.put_line("err msg");

end;

Oracle 常用指令碼

查詢當前連線數 select count from v session select username,machine,program,status,count machine as 連線數量 from v session where username cotsdev group by userna...

oracle 常用指令碼

substr 取得字串中指定起始位置和長度的字串 instr 判斷其是否含有指定的字元 replace 替換字元 create table table 1 as select from table 2 where 1 0 建表只複製表結構 表新增預設值 alter table table 1 mod...

ORACLE 常用管理指令碼

1 表空間統計 a 指令碼說明 這是我最常用的乙個指令碼,用它可以顯示出資料庫中所有表空間的狀態,如表空間的大小 已使用空間 使用的百分比 空閒空間數及現在表空間的最大塊是多大。b 指令碼原文 select upper f.tablespace name 表空間名 d.tot grootte mb ...