ORACLE创建复杂的且带参数的视图

ORACLE创建复杂的且带参数的视图

有时候我们的sql很复杂,而且中间有参数,这些参数也不太好单独的提取出来,就不太好创建视图了,那么我们就可以通过下面的方法来创建

1:创建 p_view_resourceid

代码如下

create or replace package p_view_resourceid  is 
      --参数一
  function set_resourceid(resourceid varchar2) return varchar2;
  function get_resourceid  return varchar2;
  end p_view_resourceid;

2:创建这个包的body

代码如下

create or replace package body p_view_resourceid is 
       paramValue varchar2(14);  
       -- Param
       function set_resourceid(resourceid varchar2) return varchar2 is 
       begin 
         paramValue:=resourceid; 
         return resourceid; 
        end;  
       
       function get_resourceid return varchar2 is 
       begin 
         return paramValue; 
       end; 
   end p_view_resourceid;

解释下上面两步的作用

首先是我们创建了一个参数,这个参数是varchar2类型,并且定义了两个方法,其中一个是设置值(set_resourceid),另一个是得到值(get_resourceid)

然后是对这两个方法具体操作,如指定了这个参数的大小,注意第二步,varchar2的大小必须指定

3:创建视图

如下面的代码示例

Create View view_equsetype As (select t.results_id as eq_order_id,t.results_name as eq_order_name from BASIS_RESULTS t where t.results_type=p_view_resourceid.get_resourceid()) With Check option

上面的代码只是简单的代码示例

4:查询

select * from view_equsetype where p_view_resourceid.set_resourceid('JS201708170000')='JS201708170000';


通过上面的方法我们就可以创建复杂的带参数的视图了。


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img