下面是創建一個type、package、body、function、procedure。
創建類型:
create or replace type type_str_split is table of varchar2 (4000);
聲名一個包、函數與存儲過程:
create or replace package copydata_package
authid current_user
is
--split function
function split_fn (p_str varchar2, p_split varchar2) return type_str_split;
procedure hello_proc;
end;
創建一個包主體
create or replace package body copydata_package
is --下面聲名變量
v_table varchar2(1024);
v_sql varchar2(1024);
v_count number;
function split_fn (p_str varchar2, p_split varchar2) return type_str_split
is
j int := 0;
i int := 1;
len int := 0;
len1 int := 0;
str varchar2 (4000);
str_split type_str_split := type_str_split ();
begin
len := LENGTH (p_str);
len1 := LENGTH (p_split);
WHILE j < len
LOOP
j := INSTR (p_str, p_split, i);
IF j = 0
THEN
j := len;
str := SUBSTR (p_str, i);
str_split.EXTEND;
str_split (str_split.COUNT) := str;
IF i >= len
THEN
EXIT;
END IF;
ELSE
str := SUBSTR (p_str, i, j - i);
i := j + len1;
str_split.EXTEND;
str_split (str_split.COUNT) := str;
END IF;
END LOOP;
RETURN str_split;
end;
procedure hello_proc
is
begin
DBMS_OUTPUT.PUT_LINE('Hello');
end;
end;
捕獲代碼:
begin
null;--邏輯代碼
exception when others then
null;--異常處理代碼
DBMS_OUTPUT.PUT_LINE(sqlerrm);-- sqlcode
--sqlerrm異常描述
--sqlcode異常代碼
end;
end;
系統函數:
1.控件輸出函數
DBMS_OUTPUT.PUT_LINE
用於輸出到控制台DBMS_OUTPUT.PUT_LINE('HELLO');