1.创建oracle视图
- 创建视图
CREATE OR REPLACE VIEW VIEW_SEMI_FINISHED_PRODUCTS AS SELECT 0 pproductid, null pproductno, p.id cproductid, p.productno cproductno, null pproductdesc, null pproducttypedesc,TT.MEDIUM cproductdesc, TTT.medium cproducttypedesc, p.DEFAULTUOMCODE, p.facility, 1 quantity, p.active, null effectivedate, null discontinuedate FROM product p LEFT JOIN TEXT_TRANSLATION TT on TT.TEXTID = P.TEXTID and TT.LANGUAGEID=2052 LEFT JOIN PRODUCT_INVENTORY_TYPE pit on pit.ProductInventoryType = p.productinventorytype LEFT JOIN TEXT_TRANSLATION TTT on TTT.textid = pit.textid WHERE p.PRODUCTINVENTORYTYPE = 110 and p.ACTIVE=1
- 0 pproductid: 添加不存在的列
- VIEW_SEMI_FINISHED_PRODUCTS:视图名
- 视图是一张临时表,它只存储表结构不存储数据l
- 使用视图
SELECT * FROM VIEW_SEMI_FINISHED_PRODUCTS -- 查询结果
2.添加视图列
- 创建视图过程中,当视图需要额外增加列,以便与后续视图使用。例如连表(UNION, UNION ALL)操纵等
create or replace view v_user as select *, '1' type, 0 classid from user;
3.创建外部表
- 在使用oracle_fdw时,需要将创建的视图或者表通过外部表形式映射到Postgresql中。
- 注意:oracle_fdw只能映射视图和表,不能映射函数,存储过程,包等
create foreign table view_semi_finished_products ( pproductid bigint, pproductno varchar(80), cproductid bigint, cproductno varchar(80), pproductdesc varchar(80), pproducttypedesc varchar(80), cproductdesc varchar(80), cproducttypedesc varchar(80), defaultuomcode varchar(50), facility varchar(80), quantity bigint, active smallint, effectivedate varchar(80), discontinuedate varchar(80) )server oracle options(schema 'FLX2',table 'VIEW_SEMI_FINISHED_PRODUCTS');
- 视图(view_semi_finished_products)映射到pg外部表
- 注意:oracle_fdw只能映射视图和表,不能映射函数,存储过程,包等
参考文章:
Oracle创建视图(View)