扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你这题问的是什么意思,是想把存储过程定义到package中吗,创建package是需要创建包头和包体的,包头类似于JAVA中的接口,只有函数(JAVA中叫方法)的定义而没有具体的实现,创建格式如下:
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都办公窗帘小微创业公司专业提供成都定制网站营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
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;
希望楼主采纳,如有不解,详问
1、首先登录到数据库中,点击右上角有个工具栏,点击工具栏上的tools。
2、选择导出用户对象,点击tools工具之后,向下查找Export User Objects功能,通过这个功能导出数据。
3、选择需要导出的表或者序列或者存储过程等。在Type列中展示的是对象属性,表、序列和存储过程等。这里要选择存储过程或者序列。
4、选择多个导出的对象。按住ctrl键进行多选导出的对象。点击Output File输出文件路径,选择文件路径输入文件名称,后缀是sql。如果后缀是sql,则是一些数据库语句,可以直接在其他应用上执行,
5、开始导出数据脚本。点击Export按钮,开始对选中的对象进行导出成数据脚本。出的时候需要选择一个目录。
6、查看导出文件。导出完成后,双击打开导出后的文件,就可以看到是一些建表存储过程等脚本。查看导出文件就可以看到是具体的脚本语言。
在CMD中,通过exp命令将所需的用户或表,导入到dmp文件中,这样写:
exp 用户名/密码@数据库名 tables=(tab1,tab2,tab3) file=D:\abc.dmp
这是将登录用户下的tab1、tab2、tab3导出到D:\abc.dmp中。
语法如下:
CREATE [ OR REPLACE ] PROCEDURE [ schema. ] procedure_name
[ ( parameter_declaration [, parameter_declaration ]... ) ]
[ invoker_rights_clause ]
{ IS | AS }
{ [ declare_section ] body | call_spec | EXTERNAL} ;
例子:
CREATE PROCEDURE remove_emp (employee_id NUMBER) AS
tot_emps NUMBER;
BEGIN
DELETE FROM employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps := tot_emps - 1;
END;
/
具体文档:
或搜索下
先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、定时执行你可以创建job,可以定时每个多久执行一次存储过程(job中可以执行多个存储过程,只需要使用‘;’隔开);
2、你可以将你所有的存储过程打包(pkg);
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流