重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
包头
创新互联是一家以网络技术公司,为中小企业提供网站维护、网站设计、成都做网站、网站备案、服务器租用、空间域名、软件开发、成都小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站联系热线:13518219792
create or replace package package_name is
prcedure p1;
prcedure p2(v1 in char, v2 in date);
end package_name;
包体
create or replace package body package_name is
prcedure p1 is
begin
--代码省略
end p1;
prcedure p2(v1 in char, v2 in date) is
begin
--代码省略
end p2;
end package_name;
25、包
(1)定义包头
语法:
CREATE [OR REPLACE] PACKAGE [schame_name.]包名
IS | AS
包描述
包描述:可以是变量、常量及数据类型定义和游标定义,也可以是存储过程、函数定义和参数列表返回值类型。
例:
CREATE OR REPLACE PACKAGE employeePackage
AS
--类型定义
Type empRecType is record(
Empno number(4),
Salary number
)
--变量定义
p1 varchar2(20);
type t_departmentNo table is table of dept.deptno%type
index by binary_integer;
--游标定义
Cursor order_sal retrurn EmpRecType;
--聘用员工过程
Procedure HireEmployee(p_EmpNo emp.empno%type);
End employeePackage;
例:
CREATE OR REPLACE PACKAGE scott.pkg_displayproduct
IS
procedure prc_getproductinfo
(
pid scott.product.prodid%type,
pname out scott.product.prodname%type,
ctname out scott.product.CATEGORYID%type,
dscp out scott.product.description%type
);
function fun_getstock
(
pid scott.product.prodid%type
)
return number;
END pkg_displayproduct;
(2)定义包体
语法:
CREATE OR REPLACE PACKAGE BODY [schame_name.]包名
IS | AS
包体描述;
END 包名;
包名:将要创建的包名称,该名称可以和包头所在的包名相同,也可以不同。
包体描述:游标、存储过程或者函数的定义
包体是可选的,如果在包头中没有声明任何存储过程或者函数,则包体就不存在,即使在包头有变量、游标或者类型的声明
(3)引用包中对象
BEGIN
[schame_name.][包名.]对象名;
END;
调用方式如下:
using (var conn = new OracleConnection(oradb))
using (var cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "PKG_NAME.INSERT_FUNC";
cmd.BindByName = true;
cmd.Parameters.Add("Return_Value", OracleDbType.Int16,
ParameterDirection.ReturnValue);
cmd.Parameters.Add("i_description", OracleDbType.Varchar2, 1000,
promotionEventSetupDetails.PromotionDescription,
ParameterDirection.Input);
cmd.Parameters.Add("i_theme", OracleDbType.Varchar2, 80,
promotionEventSetupDetails.PromotionTheme,
ParameterDirection.Input);
cmd.Parameters.Add("o_id", OracleDbType.Varchar2,
ParameterDirection.Output);
cmd.Parameters.Add("o_error_msg", OracleDbType.Varchar2,
ParameterDirection.Output);
conn.Open();
using (var dr = cmd.ExecuteReader())
{
// 业务代码
}
}
先create package,在里面声明procedure
然后再create package body,在package body里面编写procedure的代码即可(相当于create procedure)。
包里没有create procedure
示例如下:
CREATE OR REPLACE PACKAGE pkg_test IS
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2);
...
END test;
/
CREATE OR REPLACE PACKAGE BODY pkg_test IS
...
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2) IS
BEGIN
...
END;
...
END pkg_test;
1、首先点击桌面左下角的开始菜单按钮在打开的选择窗口中找到图中的选项,点击打开窗口界面即可。
2、然后在如图所示的界面中选择创建数据库的选项,再点击next即可即可。
3、然后打开图中的设置窗口,选择第一项使用默认的配置然后按照提示输入对应的选项和验证信息即可。
4、这里是刚刚设置的信息选项,可以检查一些主要的信息确认后即可点击next按钮继续就是说开始创建了。
5、等待即可,中途不需要手动设置修改。数据库创建完成后,点击关闭按钮关闭创建向导界面,即可新建一个数据库。