在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 ;
OK 完工
以上就是本文關于Oracle創建帶有參數的視圖代碼介紹的全部內容,希望對大家有所幫助。歡迎感興趣的朋友瀏覽本站其他相關專題,謝謝大家對VeVb武林網的支持!
|
新聞熱點
疑難解答