oracle 带参数 视图创建

本文介绍如何使用Oracle程序包为视图中的变量赋值,包括创建程序包、定义参数及get/set方法,并通过示例展示如何在视图中调用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.原理:

利用程序包来为视图中的变量赋值

2.实现:

首先:创建程序包来为参数赋值。参数类型可以是你想要的任意类型

创建包头

create or replace PACKAGE P_VIEW_PARAM AS
  --第一个参数
  FUNCTION GET_VALUE RETURN VARCHAR2;
  FUNCTION SET_VALUE(PARAM VARCHAR2) RETURN VARCHAR2;
  --第二个参数
  FUNCTION GET_VALUE_1 RETURN NUMBER;
  FUNCTION SET_VALUE_1(PARAM NUMBER) RETURN NUMBER;
   --第一个参数
  FUNCTION GET_VALUE_2 RETURN VARCHAR2;
  FUNCTION SET_VALUE_2(PARAM VARCHAR2) RETURN VARCHAR2;
 
  END P_VIEW_PARAM;

创建包体

create or replace PACKAGE BODY P_VIEW_PARAM IS
  --三个参数
  PARAMVALUE VARCHAR2(16);
  PARAMVALUE_1 NUMBER;
  PARAMVALUE_2 VARCHAR2(16);
  --第一个参数 get set
  FUNCTION SET_VALUE(PARAM VARCHAR2) RETURN VARCHAR2 IS
  BEGIN
  PARAMVALUE:=PARAM;
  RETURN PARAM;
  END;
 
  FUNCTION GET_VALUE RETURN VARCHAR2 IS
  BEGIN
    RETURN PARAMVALUE;
  END;

  --第二个参数 get set
  FUNCTION SET_VALUE_1(PARAM NUMBER) RETURN NUMBER IS
  BEGIN
  PARAMVALUE_1:=PARAM;
  RETURN PARAM;
  END;
 
  FUNCTION GET_VALUE_1 RETURN NUMBER IS
  BEGIN
    RETURN PARAMVALUE_1;
  END;  

  --第三个参数 get set
  FUNCTION SET_VALUE_2(PARAM VARCHAR2) RETURN VARCHAR2 IS
  BEGIN
  PARAMVALUE_2:=PARAM;
  RETURN PARAM;
  END;
 
  FUNCTION GET_VALUE_2 RETURN VARCHAR2 IS
  BEGIN
    RETURN PARAMVALUE_2;
  END;

END P_VIEW_PARAM;


然后创建视图:在视图中通过包里的get方法来得到 参数

CREATE OR REPLACE VIEW VIEW_TEST AS

SELECT * FROM TABLE_NAME WHERE 列=P_VIEW_PARAM.GET_VALUE();

最后使用视图的时候为参数赋值:

select * from view_test where p_view_param.set_value(11)=11;


3.需要注意的地方:

创建程序包的时候要先创建包头,然后删掉包头代码在写创建包体代码。---如果你是纯sql 创建的话。

先给 包里定义的参数赋值 并连接成查询条件 where p_view_param.set_value(11)=11

然后 视图里去到包里定义的参数 P_VIEW_PARAM.GET_VALUE()


个人理解:这里的包相当于 一个java类 一个对象  它里面定义了 变量和变量的get set 方法 你先通过set方法设值 然后通过 get 方法得值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值