建包,和过程基本语法

oracle 有时候会大量使用过程函数,我们会创建package 来存放,和JAVA类差不多,通过包名字 + 过程(函数名),不至于重复,方便管理。比如:java.util.date 和 java.sql.date. 

 

1.创建包体:

-- 创建包名字,一般以_pkg 结尾,或者开头
create or replace package test_pkg is
-- 函数名,一般以 pro 开头或者结尾
-- in 表示输入参数,可以省略,out 输出参数,不能省略
-- 参数类型 不用指定长度,这里可以创建函数,都以分号结尾
procedure test_pro(v_id in number,v_name varchar2, v_rs out number);

-- end 加你的包名,包体部分就创建完成了。
end test_pkg;

 

2.创建包体:

create or replace package body test_pkg  is
-- 加了一个body 其他照写,过程后面去掉分号,用is/as 
 procedure test_pro(v_id number,v_name varchar2,v_rs out number) is
-- 这是pl/sql 基本语法,begin ..end;
begin
      -- 这里默认给输出参数赋值,用 :=  方式
      v_rs := 0;
      
      -- 模拟给test_ran 表,里面添加数据,就是把你的输入参数放进去就行了
      insert into test_ran values(v_id,v_name);
     -- 打印输出效果
      dbms_output.put_line('ok----'||v_rs);
      commit;
      -- 异常控制,如果有其他任何异常 就。。。
      exception when others then
      v_rs := 1;
      dbms_output.put_line('v_rs :'||v_rs);
      rollback;
    -- 可以加上 end 过程名,默认和if else 差不多
    end;
end test_pkg;

 

3.调用

-- 显示你打印的东西,不然看不见
SET serveroutput ON;

DECLARE
-- 声明你的输出变量,用与接收输出的值,
-- 和JAVA 一样,定义变量 接收,然后返回
rs number;
BEGIN
-- 直接调用
test_pkg.test_pre(123,'test',rs);
end;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值