当前位置:   article > 正文

记oracle数据库中视图与greenplum中视图不同_greenplum 系统视图存放在

greenplum 系统视图存放在

oracle数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0

greenplum数据库版本:Greenplum Database 5.11.1

一、Oracle

1、创建临时表:

SQL> create table t_tmp(id number,name varchar2(10));
Table created

2、向临时表中插入数据:

SQL> insert into t_tmp values(1,'小一');
1 row inserted
SQL> insert into t_tmp values(2,'小二');
1 row inserted
SQL> insert into t_tmp values(3,'小三');
1 row inserted
SQL> insert into t_tmp values(4,'小四');
1 row inserted

SQL> commit;
Commit compete

3、查看表中数据:

4、创建视图:

SQL> create view v_tmp as select * from t_tmp;
View created

5、查看视图内数据:

6、给表重命名:

SQL> alter table t_tmp rename to t_tmp_n;
Table altered

7、继续查看视图数据:

结论:Oracle视图依赖的表重命名之后,表上的视图需要重建

操作截图:

二、greenplum

1、创建临时表:

hold_test=# create table t_tmp(id int,name varchar(10));
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE

2、插入临时数据:

hold_test=# insert into t_tmp values(1,'小一'),(2,'小二'),(3,'小三'),(4,'小四');
INSERT 0 4

3、查看表中数据:

hold_test=# select * from t_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

4、创建视图:
hold_test=# create view v_tmp as select * from t_tmp;
CREATE VIEW

5、查看视图中数据:

hold_test=# select * from v_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

6、给表重命名:

hold_test=# alter table t_tmp rename to t_tmp_n;
ALTER TABLE

7、继续查看视图中数据:

hold_test=# select * from v_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

结论:greenplum给表重命名之后,表上的视图依然可以使用

操作截图:

 

由此可见:Oracle中视图存放的是表的名称,greenplum中视图存放的是表在数据库中对象编码oid。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/601887
推荐阅读
相关标签
  

闽ICP备14008679号