您的位置:首页 > 数据库 > Oracle

ORACLE中的包和包体

2015-09-13 22:32 363 查看
用一个增删改查用户的例子来演示包(java中接口)和包体(java中实现类)

创建包

create or replace package pkg_userinfoService

as

--定义用户的结构体

type userInfo is record (

id number,--用户id

name varchar2(20),--用户名称

sex number,--用户性别 0 男 1 女

age number,--年龄

sal number--薪水

);

--添加用户

function addUser(ui in userInfo)

return number;

--创建用户表

procedure createUserTable;

--删除用户

function delUser(id number)

return number;

--更改用户信息

function updateUser(ui in userInfo)

return number;

end pkg_userinfoService;

创建包体

create or replace package body pkg_userinfoService

as

--添加用户

function addUser(ui in userInfo)

return number

as

begin

pkg_userinfoService.createUserTable();

execute immediate 'insert into TB_USERINFO values('''||ui.id||''','''||ui.name||''','''||ui.sex||''','''||ui.age||''','''||ui.sal||''')';

return 1;

end;

--创建用户表

procedure createUserTable as

ifExist number;

begin

select count(*) into ifExist from tab where tname='TB_USERINFO';

if ifExist=0 then

execute immediate 'create table TB_USERINFO(id number,--用户id

name varchar2(20),

sex number,

age number,

sal number)';

end if;

end;

--删除用户

function delUser(id number)

return number

as

begin

pkg_userinfoService.createUserTable();

execute immediate ' delete from TB_USERINFO where id='||id;

return 1;

end;

--更改用户信息

function updateUser(ui in userInfo)

return number

as

begin

pkg_userinfoService.createUserTable();

execute immediate ' update TB_USERINFO set name='''||ui.name||''',sex='''||ui.sex||''',age='''||ui.age||''',sal='''||ui.sal||''' where id='''||ui.id;

return 1;

end;

end pkg_userinfoService;

调用方式

declare ui pkg_userinfoService.userInfo;

rest number;

begin

ui.id:=1;

ui.name:='jiaozi';

ui.sex:=1;

ui.age:=10;

rest:=pkg_userinfoService.addUser(ui);

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: