Oracle 创建视图和增加额外列

本文详细介绍Oracle中视图的创建、修改及如何通过外部表映射至PostgreSQL。包括视图的创建语法、添加视图列的方法以及利用oracle_fdw创建外部表的过程。

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

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创建视图(View)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值