--建立測試表
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...