plsql 匿名块:
set serveroutput on;
begin
for i in 1..10 loop
dbms_output.put_line('zhanggaoang');
end loop;
end;
for 循环 插入数据
begin
for i in 1..100 loop
insert into zag values('x',i);
end loop;
end;
/
commit;
declare匿名块:
declare
x varchar2(40):='my first pl/sql';
begin
dbms_output.put_line(x);
end;
/
cursor --游标
declare
x t.id%type;
cursor c is select * from zag;
begin
open c;
loop
fetch c into x;
exit when c%notfound;
dbms_output.put_line('id is '||x);
end loop;
close c;
end;
存储过程:
语法:
CREATE [OR REPLACE] PROCEDURE Procedure_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
{ IS | AS }
<类型.变量的说明>
BEGIN
<执行部分>
EXCEPTION
<可选的异常错误处理程序>
END;
存储过程例子:
删除指定员工记录
CREATE OR REPLACE PROCEDURE DelEmp(v_empno IN emp.empno%TYPE) AS
No_result EXCEPTION;
BEGIN
DELETE FROM emp WHERE empno=v_empno;
IF SQL%NOTFOUND THEN
RAISE no_result;
END IF;
DBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'的员工已被除名!');
函数
???? 函数要返回一个结果。
???? 函数可以在SQL语句中调用。
CREATE [OR REPLACE] FUNCTION function_name
[(argment [ { IN| IN OUT }] type,
argment [ { IN | OUT | IN OUT } ] type]
RETURN return_type
{ IS | AS }
<类型.变量的说明>
BEGIN
FUNCTION_body
EXCEPTION
其它语句
END;
EXCEPTION
WHEN no_result THEN
DBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生其它错误!');
END DelEmp;
一个简单的函数--加法
SQL> ed
已写入 file afiedt.buf
1 create or replace function mysum(a in number,b in number)
2 return number is
3 v_sum number;
4 begin
5 v_sum:=a+b;
6 return v_sum;
7* end mysum;
SQL> /
函数已创建。
SQL> select mysum(1,2) from dual;
MYSUM(1,2)
----------
3
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25462274/viewspace-2121296/
,如需转载,请注明出处,否则将追究法律责任。