建立存儲過程與基礎文法
create or replace procedure hehe
as
v_total number(1); --定義變量
begin
v_total :=1234; --初始指派
...
IF (v_total>1000 or v_total<2000 and v_total=10086) --判斷語句
then
v_total:=123;
else
v_total:=456;
end if ;
...
對象定義(遊标cursor )
cursor users is
select name,code from sys_users t;
循環(遊标與清單)
for userinfo in users loop
DBMS_OUTPUT.put_line('使用者名為:' ||userinfo.name);
end loop;
或(不定義遊标)
for userinfo in (select name,code from sys_users t) loop
DBMS_OUTPUT.put_line('使用者名為:' ||userinfo.name);
end loop;
或直接LOOP
LOOP
.....
V_ROW_NUM := V_ROW_NUM + 1; --自增變量
EXIT WHEN V_ROW_NUM = 215; --當這個變量值等于215時退出循環
END LOOP
執行SQL
execute immediate ('insert into xxxx'); --或者sql語句變量
異常攔截與抛出(該begin ..end類似try{ } catch{})
begin
execute immediate ('create table xxxx(xxx) '); --執行創表文法,可能會異常
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('錯誤内容為:' ||tbl_name_rec.tab_name|| sqlerrm); --把異常列印出來,或者可把異常插入到異常日志表
end;
create or replace function fangfaming(table_name varchar2,table_user varchar2,...) return varchar2
is
變量定義...
begin
return 'fsdfsd'; --傳回
end;