ORACLE数据库学习03

PL/SQL学习。缺点(移植性不好,如果换了数据库则存储过程不能用了)。

创建存储过程。create or replace procedure szy_pro1(过程名) is 

begin

--执行的操作,sql语句。

end; 

调用存储过程有两种形式,1.exec 过程名(参数1,参数2 ....)   2.call 过程名(参数1,参数2 .....)

PL/SQL部分相当于是块的编程,块有三部分构成:定义部分declare ,执行部分 begin ,例外处理部分 exception ;

例如 declare v_ename varchar2(5)

begin

select ename into v_ename from emp where empno=&no;

dbms_output.put line('雇员名字是'||v_ename);

end;

带异常处理的

declare v_ename varchar2(5)

begin

select ename into v_ename from emp where empno=&no;

exception when no_data_found then 

dbms_output.put line('没有数据');

end;

存储过程的 创建

(1)可以输入雇员名称,新工资,可修改雇员名称

create procedure szy_pro1(spName varchar2,newSal number) is

begin

--执行部分

update emp set sal=newSal where ename=spName;

end;

函数,是返回特定数据。函数里面必有return语句。

(2)该函数返回固定员工的工资

create function 函数名(name varchar2) return number is mysal number(7,2);

begin

select sal into mysal from emp where ename =name;

end;

然后便是这个函数的调用,

var a number;

call 函数名('SCOTT') into:a;

包,包用于在逻辑上组合过程和函数,他由包规范和包体两部分组成

包的创建

create or replace package szy_package is

procedure update_sal(name varchar2,newsal number);

function annual_income(name varchar2) return number;

end;

包只有含函数和过程的说明,但没有实现。包体便是实现包里的函数和过程。

建立包体 create package body szy_package is

procedure update_sal(参数) is

begin

end;

annual_income(参数)  is

begin 

end;

如何调用包体的过程或则函数,则 包名.函数名/过程名

call szy_package.update_sal(参数...);



发布了45 篇原创文章 · 获赞 2 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章