Oracle视图传递参数

在Oracle里,视图不像存储过程和函数一样,可以定义输入参数,但我们可以变个方式,使用程序包来实现。

oracle package:

   oracle package是oracle包,是一组相关过程、函数、变量、常量、类型和游标等PL/SQL程序设计元素的组合。包具有面向对象设计的特点,是对这些PL/SQL程序设计元素的封装。

   Oracle的Package的作用:

   简化应用设计、提高应用性能、实现信息隐藏、子程序重载。

   package 和 package body 有什么区别?

   package是各个方法的定义,package body是具体的实现,这两个是一体的,必须同时存在

一.首先定义程序包:

create or replace package p_view_param_test  is
   --参数一
   function set_baseid(val varchar2) return varchar2;
   function get_baseid  return varchar2;
   --参数二
   function set_date(val number ) return number;
   function get_date  return number;
  
end p_view_param_test;
create or replace package body p_view_param_test is
     paramValue  varchar2(100);
     paramValue1 number;
  
     -- baseid
     function set_baseid(val varchar2) return varchar2 is
     begin
       paramValue:=val;
       return val;
     end;
  
     function get_baseid return varchar2 is
     begin
       return paramValue;
     end;
     -- basecreatedate
      
     function set_date(val number) return number is
     begin
       paramValue1:=val;
       return val;
      end;
  
     function get_date return number is
     begin
       return paramValue1;
     end;    
 end p_view_param_test;

  二、创建视图

CREATE OR REPLACE VIEW view_test as
select * from test where baseid =p_view_param_test.get_baseid() and basecreatedate =p_view_param_test.get_date();

  三、sql调用

select * from view_test where p_view_param_test.set_baseid('055e5b14-e8e5-4be7-9823-4976daa5902f')='055e5b14-e8e5-4be7-9823-4976daa5902f'
and  p_view_param_test.set_date(1473423713)=1473423713;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ok060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值