ORACLE通过对照表快速建view

简介: ORACLE通过对照表快速建view

以terence用户下的表为例,对照表建立如下

DROP TABLE CONTRAST_TABLE PURGE;
CREATE TABLE CONTRAST_TABLE AS 
SELECT table_name,
       'N_' || table_name AS new_tbl_name,
       column_name,
       'new_' || column_name AS new_col_name
  FROM all_tab_cols
  WHERE owner = 'TERENCE';


然后,找人翻译,此处不提

翻译后直接用对照表生成view就可以了

注意分配好权限


/*建view*/
DECLARE
  v_sql CLOB;
BEGIN
  FOR cur IN (SELECT 'CREATE OR REPLACE VIEW ' || new_tbl_name || ' as ' ||
                     chr(10) || 'select ' || chr(10) ||
                     wmsys.wm_concat(column_name || ' as ' || new_col_name ||
                                     chr(10)) || 'from TERENCE.' ||
                     table_name AS create_view
                FROM CONTRAST_TABLE
               GROUP BY table_name, new_tbl_name) LOOP
    v_sql := cur.create_view;
    EXECUTE IMMEDIATE v_sql;
  END LOOP;
END;


我这儿偷懒用了wm_concat,所以适用于11.2

如果不是这个版本,报错wm_concat标识符无效

相关文章
|
关系型数据库 Oracle
|
关系型数据库 Oracle
|
关系型数据库 Oracle
|
Oracle 关系型数据库 Shell
oracle dba create view 失败 解决办法
SQL> CONN /AS SYSDBA 已连接。 SQL> CREATE OR REPLACE VIEW SCOTT.VIEW_1 AS SELECT * FROM sh.CUSTOMERS; CREATE OR REPLACE VIEW SCOTT.VIEW_1 AS SELECT * FROM sh.CUSTOMERS                      
1724 0
|
Oracle 关系型数据库 OLAP
[20130727]ORACLE 12C使用expdp导出view数据.txt
[20130727]ORACLE 12C使用expdp导出view数据.txt12C新特性里面可以定义试图,然后通过view当作表一样导出数据,然后导入数据库,自己做一个测试:1.
1410 0
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
45 7
|
1月前
|
Oracle 关系型数据库 数据库
|
25天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2