程序包由兩部分構成:規范(specification)和主體(body)。
?創建表
create table PEOPLE ( ID NUMBER primary key not null, NAME NVARCHAR2(20) not null, STATUS NVARCHAR2(3) ) insert into people (id,name,status) values(1,'福康','CLX'); insert into people (id,name,status) values(2,'陸曉','act'); insert into people (id,name,status) values(3,'王山','CLX'); insert into people (id,name,status) values(4,'劉迪','CLX'); insert into people (id,name,status) values(5,'張玉','CLX'); insert into people (id,name,status) values(6,'金山','CLX'); insert into people (id,name,status) values(7,'順溜','CLX'); insert into people (id,name,status) values(8,'辭海','CLX'); insert into people (id,name,status) values(9,'陸珣','CLX'); insert into people (id,name,status) values(10,'曉笑','CLX');
?
規范:
create or replace package pkg_people as peopleString varchar2(200); peopleStatus nvarchar2(3) := 'CLX'; function get_people_string return varchar2; procedure update_people(in_id in number); procedure insert_people(in_id number, in_name in nvarchar2, in_status in nvarchar2); procedure delete_people(in_id in number); end pkg_people;
?主體:
create or replace package body pkg_people as --函數get_student_string function get_people_string return varchar2 is begin declare cursor cu_people is select name from people order by id; people_name varchar2(20); rowString varchar2(500); begin open cu_people; fetch cu_people into people_name; while cu_people%found loop rowString := rowString || people_name || ','; fetch cu_people into people_name; end loop; return substr(rowString, 1, length(rowString) - 1); end; end get_people_string; --存儲過程update_people procedure update_people(in_id in number) as begin update people set status = peopleStatus where id = in_id; commit; end update_people; end pkg_people;
?執行程序中函數/存儲過程
-- 調用程序包中的函數get_people_string select pkg_people.get_people_string() from dual ; -- 調用程序包中的存儲過程update_people() begin pkg_people.update_people( 2 ); end;
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
