oracle如何创建包体,oracle执行包体

oracle package 的创建

你放在sql文件中,oracle会认为所有的脚本都是一个脚本块,除非碰到执行符号 /

创新互联专业为企业提供大城网站建设、大城做网站、大城网站设计、大城网站制作等企业网站建设、网页设计与制作、大城企业网站模板建站服务,十余年大城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

所以,修改为以下脚本后将可以执行。

create or replace package pkg_sfdc_registration as

emp_id number(10);

procedure hire_employee(e_id out number);

end pkg_sfdc_registration;

/ --- 这里加个符号 /

create or replace package body pkg_sfdc_registration as

procedure hire_employee(e_id out number) is

begin

select 1 into e_id from dual;

end hire_employee;

end pkg_sfdc_registration;

/ --- 这里加个符号 /

Oracle 怎么根据包头生成包体

包头

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;

oracle 创建一个程序包规范,名称为package_salary_details,包含一个过程和一个函数。

这是第一问

create or replace procedure proc_SALARY(v_EMPCODE varchar2) Is

v_workoingdays salary_details.workingdays%type;

v_salary salary_details.salary%type;

begin

select salary into v_salary from salary_details where EMPCODE = v_EMPCODE;

v_salary = v_salary * 0.95;

dbms_output.put_line(v_salary);

exception

when no_data_found then

dbms_output.put_line('未找到相应员工');

end;

begin

proc_SALARY('1');

end;

请问Oracle中如何在通过创建一个package,然后在package中创建procedure的语法是怎么样的啊

先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;

oracle中将存储过程如何打包

你这题问的是什么意思,是想把存储过程定义到package中吗,创建package是需要创建包头和包体的,包头类似于JAVA中的接口,只有函数(JAVA中叫方法)的定义而没有具体的实现,创建格式如下:

create or replace package user.pkg_aaa is

/*包里面可以定义多个存储过程(procedure),自定义函数(function),自定义类型(type);*/

--传入俩个字符类型的参数,返回一个字符类型的值的函数

function fun_bbb(param1 in varchar2,param2 in varchar2) return varchar2;

--定义返回游标类型

type mycursor is ref cursor;

--传入一个字符类型参数,返回一个number类型的存储过程

procedure proc_ccc(param1 in varchar2,param2 out number);

end user.pkg_aaa;

以上是包头的定义,下面为包体(因包体涉及自己的实现方式,故这里简写),如下:

create or replace package body user.pkg_aaa is

--这里function就不写了

procedure proc_ccc(param1 in varchar2,param2 out number) is

--定义变量

begin

--实现步骤

end proc_ccc;

end user.pkg_aaa;

希望楼主采纳,如有不解,详问

c#怎么执行sql脚本在oracle中创建包和包体

调用方式如下:

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())

{

// 业务代码

}

}


网站标题:oracle如何创建包体,oracle执行包体
文章网址:http://myzitong.com/article/heohcp.html