ORACLE中建儲存過程

2021-08-31 05:47:05 字數 1582 閱讀 3360

--建立測試表

create table xiaoyan

(id number primary key,

username varchar2(24),

age varchar2(3),

address varchar2(1024),

other varchar2(1024)

);comment on table xiaoyan

is 'xiaoyan表';

comment on column xiaoyan.id

is '主鍵id';

comment on column xiaoyan.username

is '使用者名稱';

comment on column xiaoyan.age

is '年齡';

comment on column xiaoyan.address

is '位址';

comment on column xiaoyan.other

is '其它';

--構造資料

insert into xiaoyan(id,username,age,address,other) values (1, 'xiaoyan', '24', 'china', 'superman');

insert into xiaoyan(id,username,age,address,other) values (2, null, '24', 'china', 'superman');

--建立測試儲存過程

create or replace procedure pro_xiaoyan

(t_id in number,

t_name out varchar2)is

v_username varchar2(1024);

v_count number(8);

begin

select count(*) into v_count from xiaoyan;

dbms_output.put_line('當前總數為:'||v_count);

if v_count = 0

then dbms_output.put_line('等於:'||v_count);

elsif v_count >=1

then dbms_output.put_line('大於:'||v_count);

--具體業務

select nvl(username, 'null') into v_username from xiaoyan where id = t_id;

t_name := v_username;

dbms_output.put_line(t_name);

else

dbms_output.put_line('其它:'||v_count);

end if;

exception

when others then

t_name := 'exception';

rollback;

end pro_xiaoyan;

--回滾儲存過程

drop procedure pro_xiaoyan;

Oracle 儲存過程動態建表

動態sql,顧名思義就是動態執行的sql,也就是說在沒執行之前是動態的拼接的。任務 傳入引數 新建的表名hd 當前的年和月,例如hd 201105 表結構是 欄位1 id 型別是number,可以自動增加 欄位2 name 型別是varcha2,長度20 欄位3 city 型別是varchar2,長...

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...

ORACLE儲存過程

自定義函式開始 create or replace function fn wftemplateidget templatecategoryid number,organid number,templatemode number return number istemplateid number i...