创建存储过程与基础语法
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;