原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。
深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43988377
今天在群里学来一招,通过DBMS_METADATA.GET_DDL来生成建表或视图的sql语句。
(1)、生成创建表的sql语句
SQL> set long 20000;
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','TEMP','HYL') code FROM DUAL;
--注意三个参数都需要大写
CODE
--------------------------------------------------------------------------------
CREATE TABLE "HYL"."TEMP"
( "EMPLOYEE_ID" NUMBER,
"EMPLOYEE_NAME" VARCHAR2(20),
"EMPLOYEE_POSITION" VARCHAR2(20)
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "HYL_SYSTEM"
(2)、生成创建视图的sql语句
再来做个视图的实验
SQL> select * from user_users
2 ;
USERNAME USER_ID ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED INITIAL_RSRC_CONSUMER_GROUP EXTERNAL_NAME
------------------------------ ---------- -------------------------------- ----------- ----------- ------------------------------ ------------------------------ ----------- ------------------------------ --------------------------------------------------------------------------------
SYS 0 OPEN 2015/4/20 2 SYSTEM TEMP 2010/3/30 1 SYS_GROUP
SQL> SET LONG 20000;
SQL> SELECT DBMS_METADATA.GET_DDL('VIEW','USER_USERS','SYS') code FROM DUAL;
--注意三个参数都需要大写,表示sys用户下,叫做“USER_USERS”的视图
CODE
--------------------------------------------------------------------------------
CREATE OR REPLACE FORCE VIEW "SYS"."USER_USERS" ("USERNAME", "USER_ID", "ACCOU
select u.name, u.user#,
m.status,
decode(u.astatus, 4, u.ltime,
5, u.ltime,
6, u.ltime,
8, u.ltime,
9, u.ltime,
10, u.ltime, to_date(NULL)),
decode(u.astatus,
1, u.exptime,
2, u.exptime,
5, u.exptime,
6, u.exptime,
9, u.exptime,
10, u.exptime,
decode(u.ptime, '', to_date(NULL),
decode(p.limit#, 2147483647, to_date(NULL),
decode(p.limit#, 0,
decode(dp.limit#, 2147483647, to_date(NULL), u.ptime +
dp.limit#/86400),
u.ptime + p.limit#/86400)))),
dts.name, tts.name, u.ctime,
nvl(cgm.consumer_group, 'DEFAULT_CONSUMER_GROUP'),
u.ext_username
from sys.user$ u left outer join sys.resource_group_mapping$ cgm
on (cgm.attribute = 'ORACLE_USER' and cgm.status = 'ACTIVE' and
cgm.value = u.name),
sys.ts$ dts, sys.ts$ tts, sys.user_astatus_map m,
profile$ p, profile$ dp
where u.datats# = dts.ts#
and u.tempts# = tts.ts#
and u.astatus = m.status#
and u.type# = 1
and u.user# = userenv('SCHEMAID')
and u.resource$ = p.profile#
and dp.profile# = 0
and dp.type# = 1
and dp.resource# = 1
and p.type# = 1
and p.resource# = 1
小知识,简而记之。
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。
深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43988377
系列链接_20150523:
蓝的成长记——追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知
蓝的成长记——追逐DBA(3):古董上操作,数据导入导出成了问题
蓝的成长记——追逐DBA(4):追忆少年情愁,再探oracle安装(Linux下10g、11g)
蓝的成长记——追逐DBA(5):不谈技术谈业务,恼人的应用系统
蓝的成长记——追逐DBA(6): 做事与做人:小技术,大为人
蓝的成长记——追逐DBA(8):重拾SP报告,回忆oracle的STATSPACK实验
蓝的成长记— —追逐DBA(9):国庆渐去,追逐DBA,新规划,新启程
蓝的成长记——追逐DBA(10):飞刀防身,熟络而非专长:摆弄中间件Websphere
蓝的成长记——追逐DBA(11):回家后的安逸,晕晕乎乎醒了过来
蓝的成长记——追逐DBA(13):协调硬件厂商,六个故事:所见所感的“服务器、存储、交换机......”
蓝的成长记——追逐DBA(14):难忘的“云”端,起步的hadoop部署
蓝的成长记——追逐DBA(15):以为FTP很“简单”,谁成想一波三折