最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

图解Oracle包实例

来源:动视网 责编:小采 时间:2020-11-09 07:44:25
文档

图解Oracle包实例

图解Oracle包实例:以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。 1在包中定义record类型,并在匿名块中调用 --在包中自定义类型 create or replace package my_bao as type emp_type is record( gh emp.empno%type
推荐度:
导读图解Oracle包实例:以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。 1在包中定义record类型,并在匿名块中调用 --在包中自定义类型 create or replace package my_bao as type emp_type is record( gh emp.empno%type


以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。 1在包中定义record类型,并在匿名块中调用 --在包中自定义类型 create or replace package my_bao as type emp_type is record( gh emp.empno%type, xm emp.ename%type, gz emp.sal%type );

以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。


1 在包中定义record类型,并在匿名块中调用
--在包中自定义类型
create or replace package my_bao
as
type emp_type is record(
gh emp.empno%type,
xm emp.ename%type,
gz emp.sal%type
);
end;

创建之后刷新一下,左侧视图 程序包 下出来所创建内容;



2 调用,

declare
v1 my_bao.emp_type;
begin
select empno,ename,sal into v1 from emp where empno=7900;
dbms_output.put_line('工号='||v1.gh);
dbms_output.put_line('姓名='||v1.xm);
dbms_output.put_line('工资='||v1.gz);
end;

结果如下图;


如果DBMS输出中没有内容,点击上图中最右侧的像书的页的那个小图标,打开DBMS输出;


3 在包中定义过程hello和函数f_add(p1,p2)
--定义包规范
create or replace package my_bao2
as
type emp_type is record(
gh emp.empno%type,
xm emp.ename%type,
gz emp.sal%type
);
procedure hello(p_name varchar2);
function f_add(p1 number,p2 number) return number;
end;



4 实现包规范,即包体(package body)
create or replace package body my_bao2
as
type emp_type is record(
gh emp.empno%type,
xm emp.ename%type,
gz emp.sal%type
);
procedure hello(p_name varchar2)
as
begin
dbms_output.put_line('hello,'||p_name);
end;


function f_add(p1 number,p2 number) return number
as
v1 number;
begin
v1:=p1+p2;
return v1;
end;
end;



5 调用

select my_bao2.f_add(1,2) from dual;



6 调用

call my_bao2.hello('oracle');



7 包中重载方法
重载的要点就是名称一样,而参数的类型或者个数不同。
定义代码:
create or replace package my_bao3
as
function f_add(p1 number,p2 number) return number;
function f_add(p1 varchar,p2 varchar) return number;
end;


包体:

create or replace
package body my_bao3
as

function f_add(p1 number,p2 number) return number
as
v1 number;
begin
v1:=p1+p2;
return v1;
end;

ction f_add(p1 varchar,p2 varchar) return number
as
v1 number;
begin
v1:=p1+p2;
return v1;
end;
end;



8 调用

select my_bao3.f_add(1,2) from dual;



9 调用

select my_bao3.f_add('6','2') from dual;

oracle会根据参数类型自动选择调用哪个函数;

文档

图解Oracle包实例

图解Oracle包实例:以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。 1在包中定义record类型,并在匿名块中调用 --在包中自定义类型 create or replace package my_bao as type emp_type is record( gh emp.empno%type
推荐度:
标签: 使用 图解 sql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top