Oracle里创建带参数的视图详细编码流程

在Oracle里创建带参数的视图

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

首先定义程序包:

/* 按个人需要定义,我定义三个参数 ,因我项目程序需要,所以三个参数都是number ,当然可定义其它类型
但切记,第二个create 的参数类型等需以第一个create一致,否则程序包创建失败
*/
create or replace package p_view_param is
–参数一
function set_param(num number) return number;
function get_param return number;
–参数二
function set_Type(num number) return number;
function get_Type return number;
–参数三
function set_Id(num number) return number;
function get_Id return number;
end p_view_param;

create or replace package body p_view_param is
paramValue number;
paramType number;
paramId number;
– Param
function set_param(num number) return number is
begin
paramValue:=num;
return num;
end;

   function get_param return number is 
   begin 
     return paramValue; 
   end; 
   -- Type
   function set_Type(num number) return number is 
   begin 
     paramType:=num; 
     return num; 
    end;  
   
   function get_Type return number is 
   begin 
     return paramType; 
   end;
    -- ID
   function set_Id(num number) return number is 
   begin 
     paramId:=num; 
     return num; 
    end;  
   
   function get_Id return number is 
   begin 
     return paramId; 
   end;

end p_view_param;

创建的时候记得先创建第一个;

接下来定义视图:

/*
*定义视图,where 后面跟参数,可自己拼装,注意视图字段要和select的字段匹配
*/
CREATE OR REPLACE VIEW abstract_sum_view(fa_id, aircraft_num,aircraft_weight,airline_code,anchor_pos)
AS SELECT f.fa_id, f.aircraft_num,findweight(f.aircraft_num),f.airline_code,f.anchor_pos
FROM tb_flight_abstract f
where f.fa_id=p_view_param.get_Id(); --参数

–使用视图,传参
select * from abstract_sum_view where p_view_param.set_id(3)=3 ;

记录点滴,共同交流,一起学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 中,你可以创建参数视图参数视图可以接受一个或多个输入参数,并根据这些输入参数动态生成视图的结果集。要创建参数视图,需要使用 PL/SQL 函数来定义视图的查询语句。 以下是创建参数视图的一般步骤: 1. 创建一个 PL/SQL 函数,该函数接受一个或多个输入参数,并返回一个 `SELECT` 查询语句的字符串。 ```sql CREATE OR REPLACE FUNCTION my_view_func(p_param1 IN VARCHAR2, p_param2 IN NUMBER) RETURN VARCHAR2 AS v_query VARCHAR2(4000); BEGIN v_query := 'SELECT col1, col2, col3 FROM my_table WHERE col4 = ''' || p_param1 || ''' AND col5 = ' || p_param2; RETURN v_query; END; ``` 在上面的示例中,我们创建了一个名为 `my_view_func` 的函数,该函数接受两个参数 `p_param1` 和 `p_param2`,并返回一个 `SELECT` 查询语句的字符串。该查询语句查询 `my_table` 表中 `col4` 等于参数 `p_param1`,且 `col5` 等于参数 `p_param2` 的记录。 2. 创建一个视图,该视图调用上述 PL/SQL 函数,并将输入参数传递给该函数。 ```sql CREATE OR REPLACE VIEW my_view (col1, col2, col3) AS SELECT col1, col2, col3 FROM TABLE(DBMS_SQL.PARSE(my_view_func('parameter1', 123), DBMS_SQL.NATIVE)); ``` 在上面的示例中,我们创建了一个名为 `my_view` 的视图,该视图调用了 `my_view_func` 函数,并将参数 `parameter1` 和 `123` 传递给该函数。最终,该视图的结果集会根据传递的参数动态生成。 需要注意的是,在使用参数视图时,需要传递正确的参数类型和值,否则会导致查询失败或产生错误的结果集。希望这能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值