ORACLE中的包和包体
用一個增刪改查用戶的例子來演示包(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;
轉載于:https://www.cnblogs.com/liaomin416100569/p/9331266.html
總結
以上是生活随笔為你收集整理的ORACLE中的包和包体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XMLHttpRepuest2
- 下一篇: [转载]永远保持随时可以离开的能力(不仅