Get table and index DDL in the easy way(转)

本文介绍在Oracle9i中使用dbms_metadata工具轻松获取表和索引的DDL语句的方法。该工具简化了系统迁移过程中的对象预创建工作,支持输出单个对象或整个模式。

Get table and index DDL the easy way


Don Burleson

Prior to Oracle9i, getting table and index DDL was a time-consuming and tricky process. You could run the export utility with ROWS=NO, but the output was hard to re-use because of quoted strings. The only other option was to write complex dictionary scripts that might not work on complex objects such as IOT and nested tables.

Punching DDL from the dictionary is very useful when you are migrating a system to a new platform and you want to pre-create the objects in a new tablespace so that you can import with IGNORE=Y.

In Oracle9i we have the exciting new dbms_metadata utility to display DDL directly from the data dictionary. Using this powerful utility, we can punch individual objects or an entire schema.

Best of all, it is easy. You simply execute dbms_metadata. get_ddl.

To punch off all table and indexes for the EMP table, we execute dbms_metadata. get_ddl, select from DUAL, and providing all required parameters.

set heading off;
set echo off;
Set pages 999;
set long 90000;
spool ddl_list.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
spool off;

Here is the output. The only thing missing is the ending semicolons after each statement. Just for illustration, we show how a primary key can be punched as part of the table DDL or separately using the INDEX argument.

CREATE TABLE "SCOTT"."DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"
CREATE UNIQUE INDEX "SCOTT"."DEPT_IDX" ON "SCOTT"."DEPT" ("DNAME")
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"

Now we can modify the syntax to punch a whole schema. It us easily done by selecting dbms_metadata. get_ddl and specifying USER_TABLES and USER_INDEXES. :

set pagesize 0
set long 90000
set feedback off
set echo off

spool scott_schema.sql

connect scott/tiger;

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
FROM USER_TABLES u;

SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)
FROM USER_INDEXES u;

spool off;

[@more@]

When you have foreign keys (“references” constraints), it would be nice to punch the table DDL in their proper order for re-loading into another database. If you do not order the table, a table may be added that references another table that has not yet been added. Making this change would involve adding a WHERE clause that queries dba_constraints and dba_cons_columns to determine the proper table order.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/421207/viewspace-1004420/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/421207/viewspace-1004420/

源码下载地址: https://pan.quark.cn/s/2e09cbca2d82 【针对青龙面板wxpusher推送问题的修复包】是一个为青龙面板(QL Panel)设计的更新或改进版本,其目的是纠正与wxpusher相关的推送故障。青龙面板是一个被广泛应用的自动化部署及管理解决方案,它赋予用户在图形化环境中执行多种IT运维操作的能力,涵盖脚本操作、周期性任务执行以及文件处理等。wxpusher作为青龙面板的一个附加组件,承担着实现微信消息推送的任务,用以保障用户可以即时获取系统关键状态变动或异常警报。 sendNotify.js 是此修复包内含的关键模块,属于wxpusher插件的一部分,其核心职责是发送各类通知。在JavaScript编程语言中,该脚本或许内含了处理推送流程、调用微信推送端点以及消息内容的格式化和校验等操作。一旦青龙面板监测到新的事件状况,例如任务成功完成、发生错误或系统进入维护阶段,sendNotify.js便会被激活,将相关数据传送至用户的微信账户。 ql.js 另一个重要的构成部分,可能代表了青龙面板的核心代码库或专用于wxpusher的设定文档。它或许包含了整合wxpusher的相关参数,例如启动过程、授权核实、故障应对和日志管理等功能。ql.js与sendNotify.js协同工作,确保wxpusher能够顺利与青龙面板进行数据交互,并可靠地向用户传递通知信息。 CK_WxPusherUid.json 这一文档很可能是储存用户信息或配置参数的JSON格式文件。"CK"通常指代Cookie或某种缓存机制,而"WxPusherUid"可能意指wxpusher用户的专属识别码。该文件用于保存用户微信推送服务的连接详情,让青龙面板可以...
内容概要:本文围绕基于SOCP(二阶锥规划)的配电网分布式光伏接入承载力评估展开研究,提出了一种结合二阶锥最优潮流模型的科学评估方法,用于分析新型电力系统背景下配电网对分布式光伏发电的接纳能力。通过构建精确的数学优化模型,并利用Matlab进行编程仿真,系统地实现了在满足电压、电流、网络拓扑等多重安全约束条件下,求解配电网可承载的最大光伏接入容量。文章重点阐述了非凸潮流方程的凸化处理技术、SOCP模型的构建流程以及关键约束条件的化方法,如将非线性潮流方程松弛为二阶锥约束,并通过标准测试系统进行算例验证,充分证明了该方法在计算效率与求解精度方面的优越性与工程实用性。; 适合人群:具备一定电力系统分析基础、优化理论知识及Matlab编程能力的研究生、科研人员以及从事新能源并网、电网规划与运行分析的工程技术人员。; 使用场景及目标:①评估高比例可再生能源接入下配电网的承载极限,支撑分布式光伏项目的科学规划与审批;②为电网扩容改造、主动配电网管理及灵活性资源配置提供量化决策依据;③深入理解凸优化技术在电力系统最优潮流计算中的应用机制与实现路径。; 阅读建议:建议读者结合Matlab代码与理论推导同步研习,重点关注SOCP建模过程中的数学松弛技巧与物理约束映射关系,宜在复现标准算例的基础上开展参数敏感性分析与模型拓展研究。
内容概要:本文提出了一种面向电表数据隐私保护的联邦学习行业电力负荷预测框架,通过Python代码实现,有效解决了多参与方在数据隐私受限条件下进行协同建模的难题。该框架基于联邦学习机制,允许多个电力用户或企业在不共享原始用电数据的前提下,共同训练高精度的负荷预测模型。文中系统阐述了整体架构设计、数据预处理流程、模型训练机制、隐私保护策略(如差分隐私或安全聚合)以及实验验证过程,充分证明了该方法在保障数据安全的同时,仍能保持优异的预测性能,具有较强的实用性和推广价值。; 适合人群:具备一定机器学习、联邦学习及电力系统基础知识的研究人员与工程师,特别适用于从事电力负荷预测、用户行为分析、数据隐私保护及能源大数据应用等相关领域的专业技术人员。; 使用场景及目标:①应用于电力公司或第三方服务商开展跨区域、跨用户的行业级负荷预测,提升预测准确性;②在保护居民与企业用电隐私的前提下,实现多方数据协作建模,推动数据合规共享;③促进联邦学习在智慧能源、智能电网等场景的落地应用,构建安全可信的能源数据生态体系。; 阅读建议:建议读者结合所提供的Python代码进行实践操作,重点理解联邦学习客户端-服务器架构的实现逻辑、本地模型更新与全局聚合机制,以及隐私保护技术的具体集成方式,同时可参照文中的实验设置与评估指标优化自身项目的模型性能与安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值