下面是创建一个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');