zoukankan      html  css  js  c++  java
  • 在Oracle中如何创建带参数的视图?

    本文介绍了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 ;
     

  • 相关阅读:
    iOS开发之多线程技术(NSThread、OperationQueue、GCD)
    数据结构回顾之顺序存储结构中的线性表(栈与队列顺序线性表实现)
    iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
    iOS开发之使用XMPPFramework实现即时通信(三)
    iOS开发之调用系统打电话发短信接口以及程序内发短信
    iOS开发之抽屉效果实现
    iOS开发之WebView
    iOS开发之地图与定位
    iOS开发之使用XMPPFramework实现即时通信(二)
    iOS开发之使用XMPPFramework实现即时通信(一)
  • 原文地址:https://www.cnblogs.com/nuaaydh/p/4342721.html
Copyright © 2011-2022 走看看