oracle包的创建
一 包的组成 1)包头(package):包头部分申明包内数据类型,常量,变量,游标,子程序和异常错误处理, 这些元素为包的公有元素。 2)包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序 提供具体的实现,在包主体中还可以声明包的私有元素 3)包头和包主体分开编译,并作为两个分开的对象分别存放在数据库字典中 --删除package --drop package pkg_lxg_test; --1)首先创建package头(头和body的sql不要写在同一个文件中执行) ---- 这里可以声明多个procedure(如果外部调用才声明) create or replace package pkg_lxg_test as procedure deleteTask(taskTypeCode in varchar2,--任务类型代码 businessKey in varchar2,--业务号 resultCode out varchar2,--结果代码 resultMessage out varchar2 --结果信息 ); end pkg_lxg_test; --)2 再创建package体(上面的头不能和体一起执行,移交时应该写成两个sql文件进行移交) --)3 创建完成后,如果创建成功了会自动编译的 --)4 如果在创建package不成功的话,在查看和说明中可以查看到错误 --)5 package创建完成后,-->右键,查看--->然后选中你要测试的package中的proc点击右键---》测试 CREATE OR REPLACE PACKAGE BODY NBADATA.pkg_lxg_test AS function function2(taskTypeCode in varchar2,businessKey in varchar2) return varchar2 is v_preview_environment varchar2(4); v_voucher_no varchar2(50); v_count number default 0; begin v_preview_environment:= '1'; --dbms_output.put_line('执行了方法function2'); return v_preview_environment; end function2; --这里定义procedure,可以定点多个 procedure deleteTask(taskTypeCode in varchar2,--结果代码 resultMessage out varchar2 --结果信息 ) IS begin begin resultCode := '0'; resultMessage := 'delete asynchrouns task sucess'; --dbms_output.put_line('成功执行了存储过程'); exception when others then resultCode := '1'; resultMessage := 'fail in deleting asynchrouns task sucess'; end; end deleteTask; end pkg_lxg_test; / (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 可以编译几个Oracle Pl / SQL包进行原子操作吗?
- ruby-on-rails – ActionController :: InvalidAuthenticit
- c# – 如何显示嵌入图像的html电子邮件(cid)?
- 人们为改善OpenID用户体验做了哪些工作,特别是作为依赖方?
- objective-c – 在NSCache中使用NSPurgeabledata有什么意义
- ruby – RSpec:如何测试哈希数组中键的存在?
- c# – 将Binary转换为Byte []数组
- 将SQLite3转储导入数据库
- c – A *寻路保证找到最短路径?
- c# – 删除边框winforms和WindowState在没有全屏的情况下最