--PL/SQL块结构:
declare --可选
/* 定义部分-定义常量、变量、复杂数据类型、游标、异常。*/
begin --必须
/* 执行部分-PL/SQL语句、SQL语句。*/
exception --可选
/* 异常处理部分-处理运行错误。*/
end; --必须
/
set serveroutput on
declare --简单匿名块
v_name varchar2(10);
begin
select t.ename into v_name from emp t where t.empno=&no; --&no 临时变量,执行时会alert一个窗口要求输入no值。
dbms_output.put_line('雇员名:'||v_name);
exception
when no_data_found then
dbms_output.put_line('雇员不存在!');
end;
/
--函数
create function count_sal(name varchar2)
return number is
f_sal number(7,2);
begin
select t.sal*12+nvl(t.comm,0) into f_sal from emp t where lower(t.ename)=lower(name);
return f_sal;
end;
/
--调用:
--SQL> var income number
--SQL> call count_sal('scott') into :income;
--存储过程
create or replace procedure update_sal(name varchar2,newsal number)
is
begin
update emp t set t.sal=newsal where lower(t.ename)=lower(name);
end;
/
--调用:
--call update_sal('SMITH',900);
--包
create or replace package pkg
is
function count_sal(name varchar2) return number;
procedure update_sal(name varchar2,newsal number);
end;
/
--触发器
create or replace trigger update_cascadeafter
update of sal on emp for each rowbegin dbms_output.put_line('ok');
end;
/
--以上东东只是语法上没有错误,另外还存在许多bug。--这是本人看书实验时候所敲的,贴出来或许有用!!!
PL/SQL学习笔记一之语法结构!!!
最新推荐文章于 2025-01-01 19:04:11 发布