用PowerDesigner 逆向工程导出ORACLE数据库 表+字段+注释
PowerDesigner连接配置Oracle教程
PowerDesigner连接配置Oracle教程我们平时使用PowerDesigner进行数据库表关系图导出时,需要进行数据库驱动配置。
无论哪个版本,都是千篇一律,在这里以PowerDesigner16为例,其他版本操作类似。
程序注意点目前PowerDesigner一般为32位程序,64位的还没有见过,使用之前,有两点需要注意:1、安装32位JDK,并将JAVA_HOME、CLASS_PATH、PATH等JDK参数设置为32位JDK 路径。
PowerDesigner16建议使用JDK1.6 X86版本,其它版本的PowerDesigner需根据官方要求安装配置JDK。
2、以管理员权限运行程序。
方式一配置Connection Profiles新建Model,选择Physical Data Model类型。
新建完成后,Database菜单出现,选择下方Configure Connections选项,进入数据连接配置页。
此时,我们选择Connection Profiles方式,选择连接方式位jdbc,数据库类型位oracle,输入jdbc url后,测试连接后保存即可。
问题及解决测试连接时提示类似连接失败、【Non SQL Error : Could not load class】等字样,如图:解决方法一此时,我们需要在oracle目录或者网上找到【ojdbc14.jar】文件(即oracle的ojdbc包),并拷贝到PowerDesigner安装目录下。
例如:拷贝结束后,重启PowerDesigner即可,如图:解决方法二第二种解决方法在第一种解决方法无效的情况下可以尝试,但此方法笔者未进行尝试,据说可行。
与方法一相同,我们需要在oracle目录或者网上找到【ojdbc14.jar】文件(即oracle的ojdbc包),但此方法文件放置位置随意,需要在环境变量CLASS_PATH中配置ojdbc14.jar的完整路径,配置完毕后重启PowerDesigner即可。
PowerDesigner对Oracle作逆向工程
PowerDesigner对Oracle作逆向⼯程⽬的
PowerDesigner 15对OracleClient 11g进⾏逆向⼯程
环境
Win7 64位系统
Oracle 11g
OracleClient 11g ODAC
Powerdesigner 15
步骤
1,FileàReverse EngineeràDatabase
2,DBMS,选择”Oracle 11g”
3,选择数据源
4,配置数据源
第1种⽅式 Connection Profile
问题:
发现下图中的DBMS type下拉框,居然没有Oracle 11g
第2种⽅式 ODBC Machine Data Source
问题:
配置ODBC数据源中,居然没有Oracle的驱动
原因:
可能是本机win6 64位机,需要32位应⽤程序来操作吧
解决:
找开C:\Windows\SysWOW64,找到odbcad32.exe
通过这个,可以配置基于Oracle 11g的ODBC数据源
⼩技巧:
问题:
发现“服务”变灰,不能启动或停⽌
解决:
右击服务à属性,将“禁⽤”改成“⼿动”,点“确定”。
这时发现就有了
参考:
PowerDesigner 正向⼯程和逆向⼯程说明
为什么我的win7 ODBC数据源⾥没有Oracle的驱动程序。
PowerDesigner15连接Oracle数据库并导出Oracle的表结构
我们介绍了PowerDesigner连接Oracle数据库,根据建立的数据源进行E-R图生成。
详细步骤如下:1、启动PowerDesigner2、菜单:File->Reverse Engineer ->Database 出来New Physical Data Model 对话框,DBMS选择ORACLE Version 10g 选项,其他可以选择默认值:点击“确定”按钮,弹出Database Reverse Engineering Options对话框:在此我们选择Using a data source,点击数据源按钮弹出Connection to a Data Source对话框,DataSource栏选中第三个Connection profilte选项;然后点击Configuer按钮,弹出数据源配置Configuer Data Connections对话框;把页签切换到第三个Connetion Profiles页签中,如果连接存在,选中就行,如果不存在,点击add Data Source数据库图标进行新增,弹出Connection Profile Definition对话框如下图;此对话框中需要输入以下信息Connection profile name: 输入数据库连接文件名,它会自动加上后缀名.dcp; Directory:数据库连接文件存放路径;可以任意;Connetction type: 选择JDBC;DBMS type : 数据库类型选择Oracle;Server name: 服务器名称;也相当于对应PL/SQL登陆页面的数据库;(Net Manager管理器可以看到服务器)Database name: 数据库名字;User name: 登陆数据库名字;Password: 密码JDBC Driver class: 驱动类;只要下拉框选择就行;JDBC Driver Jar URL: 访问的服务器路径JDBC connection files: 驱动包;需要指向ojdbc14.jar或者其他驱动的包的按钮路径;全部设置如下图点击Test Connection 按钮进行连接测试;测试连接是否成功;成功会弹出成功或者失败消息框;测试成功后;点击确定按钮,返回数据源配置Configuer Data Connections对话框列表中就会多出一个,如下图勾上刚刚创建的连接,点击确定按钮;返回Connetction to a Data Source 对话框,然后在下拉框中选择我们之前建立的数据源文件,并再次输入数据库User ID和password点击Connection即可连接至数据库,并得取所有的数据库对象,在此我们选择所有的Table。
通过powerdesigner生成预埋数据
POWERDESIGNER生成预埋数据使用说明书前言在性能测试过程中,通过向数据库中预埋一定数量的数据,模拟生产环境,使性能测试结果能更准确地反映系统的性能状况。
如何能快速方便地向数据库中预埋数据,本文给出了详细的操作步骤。
操作步骤步骤:1.配置一个ODBC数据源进入控制面板—管理工具,双击数据源(ODBC)快捷方式,进入ODBC配置界面点击添加按钮,进入创建数据源界面,选中Oracle10g数据库的驱动程序,(前提条件是安装Oracle10g数据库的客户端),点击完成。
进入Oracle ODBC Driver配置界面,输入数据源名称、输入TNS服务名即SID,输入UserID,点击TestConnection,进入下面界面,输入密码,点击OK点击OK至此ODBC数据源配置完毕。
2.通过逆向工程将关系数据库,生成物理数据模型(PDM)打开PowerDesigner软件,点击文件—新建按钮,进入新建模型界面选择模型类型为Physical data Model ,选择DBMS为Oracle 10g,点击确定按钮。
从菜单栏选择数据库---连接数据源选项,进入连接数据源界面在Data source 中选择前面配置的驱动程序,这里选择的是oracledriver,输入用户ID和密码,点击连接。
从菜单栏中选择数据库---逆向工程数据库(reverse engineer database),进入下面的界面选择一个数据源,这里选择前面配置好的oracledriver,点击确定按钮,进入下面界面,此界面显示此数据库所有表、视图、用户,根据自己需要选择,这里以数据表为例选择自己需要的数据库表,点击OK,这样PDM就生成了。
如图所示3.从PDM生成测试数据选择菜单栏—数据库—生成测试数据,进入下面的界面,输入文件名,选择存放路径,选择” Generation type”为” Script generation”,则生成SQL脚本;选择” Generation type”为”Direct generation”,则直接插入数据库;选择”Generation type”为”Data filegeneration”,则生成数据文件。
利用powerdesigner从oracle数据库中导出数据物理模型结构
利⽤powerdesigner从oracle数据库中导出数据物理模型结构步骤为1.菜单File->Reverse Engineer->Database...2.弹出窗⼝选择关系数据库类型我这⾥使⽤oracle9i 点击“确定”按钮。
3.新窗⼝选择 Using a data source 然后点击尾部的按钮选择数据源,如果是第⼀次需要添加新的数据源4.数据源选择 Connection profile 然后点击下⾯的“configure...”按钮5.在新窗⼝点击新添加⼀个数据源按钮其中Connection profile name:根据业务编写⾃⼰的存数据源信息的⽂件名字Connection Type:native 即选择本地DBMS type:oracle9i 即选择你连接的数据库⼚商和版本Service name:即填写你的oracle客户端配置的服务名(后⾯举例解释)Database name:数据库名称即oracle的SIDUser name:数据库⽤户名Password:数据库⽤户密码其中service name 为举例oracle客户端访问配置如下:businessdb=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 134.224.40.73)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))在这个数据源配置中Service name:businessdb,数据库名称Database name:orcl配置完毕可以测试数据库是否连接成功完成数据源的配置,既可以从数据库中导出表结构了。
PLSQLDeveloper导入导出Oracle数据库方法
PLSQLDeveloper导⼊导出Oracle数据库⽅法前⼀篇博客介绍了Navicat⼯具备份的⽅法,这篇博客介绍⼀下使⽤PL/SQL Developer⼯具导⼊导出Oracle的⽅法。
PL/SQL Developer是Oracle数据库⽤于导⼊导出数据库的主要⼯具之⼀,本⽂主要介绍利⽤PL/SQL导⼊导出Oracle数据库的过程。
1.Oracle数据库导出步骤1.1 Tools→Export User Objects...选项,导出.sql⽂件。
说明:此步骤导出的是建表语句(包括存储结构)。
1.2 Tools→Export Tables...导出表结构及数据PL/SQL⼯具包含三种⽅式导出Oracle表结构及数据,三种⽅式分别为:Oracle Export 、SQL Inserts、PL/SQL Developer,下⾯分别简单介绍下区别:第⼀种⽅式导出.dmp格式的⽂件,.dmp是⼆进制⽂件,可跨平台,还能包含权限,效率不错,⽤的最为⼴泛。
<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHAgYWxpZ249"center">第⼆种⽅式导出.sql格式的⽂件,可⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量导⼊导出。
尤其注意的是表中不能有⼤字段(blob,clob,long),如果有,会提⽰不能导出(提⽰如下: table contains one or more LONG columns cannot export insql format,user Pl/sql developer format instead)。
第三种⽅式导出.pde格式的⽂件,.pde为PL/SQL Developer⾃有的⽂件格式,只能⽤PL/SQL Developer⼯具导⼊导出,不能⽤⽂本编辑器查看。
powerdesign把mysql生成pdm(逆向工程)
最近因为老大要求做E/R图,所以一直在学powerdesigner(版本15.3),感觉功能还是蛮强大的,可能是因没有用过其他建模工具吧。
今天把逆向工程的操作记录下来,因为之前在网上找了比较多的教程,走了一些弯路。
一般情况下要做逆向工程,是因为项目已经完成了,后期再来理数据模型。
一般做法是先建模后开发的。
下面是操作的具体步骤:
1.下载mysql的odbc工具
地址:/downloads/connector/odbc/
安装此功能没有什么可讲的,一直下一步即可。
2. 配置powerdesigner数据库连接
先在工作空间(workspace)中新建一个物理模型(physical data model),如下图:
选择Database->Configure connections,
在弹出的窗口中“Add data source”(添加数据源),在弹出的窗口中选择mysql odbc 5.1 deiver(此需安装mysql odbc),选择下一步,选择保存数据源文件的名称,这个根据
个人而定。
点击完成以后,会让配置相关的数据库用户名和密码,此处输入自己数据库的相关信息,如下图:
至此,数据库连接已配置完成。
下一步将来进行逆向工程的操作了。
选择File->Reverse Engineer->Database在弹出的选择MySql 5.0如下图。
点击确定出现如下图:
选择刚刚新的ODBC文件。
点击确定后弹出来的东西相信大家会比较熟悉了,即是自己的数据,我的是这样的,如下图。
根据自己的需求进行相应的设置,即可通过逆向工程生成相关的物理数据模型。
PD反向工程导出数据库结构
PD反向工程导出数据库结构by tsonghuaPowerdesigner反向工程(Reverse Engineer)可以连接数据库,然后导出其数据库结构(表、视图等),然后加以分析、设计等。
比如,这里可以通过2种方式来反向Oracle数据库结构1 脚本1.1.用toad连接,在Schema Browser下,选中需要导出的表,右键,选Create Script,生成脚本。
如下图:1.2 打开PD,新建一个Physical Data Model然后依次Database菜单\Revserse Engineer Database。
在Database Reverse Engineering界面选择unsing script file,然后浏览上一步从Toad生成的脚本,确定即可。
1.3 同样地,可以不新建model然后再反向;而直接在打开PD后,点file\Reverse Engineer\Database,此后设置同上。
2.ODBC 数据源2.1 Reverse Engineering的时候选ODBC2.2 connect to an ODBC data source2.3 依次add\用户DSN\添加\创建新数据源(选驱动程序)2.4 选好驱动程序后就是设置oracle用户、密码2.5 确定之后,就是选择需要导出的表、视图等。
设置好后就自动导出。
2.6 可能第二种方式某些中文会产生乱码,用脚本的话,可以避免3. 效果4. 将导出的数据库结构生成word文档。
将生成的pdm文件,借助第三方软件PDMReader数据字典阅读器,实现导出word的功能。
导出效果12/31/2009 10:49:05 AM。
解决PowerDesigner反向工程没有注释(备注)
解决PowerDesigner反向⼯程没有注释(备注)1. 列注释原来代码:{OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COMMENT, ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}select,,c.column_id,,case when c.system_type_id in (165, 167, 231) and c.max_length = -1 then + '(Max)' else end,c.precision,case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else (c.max_length) end end as colnA,c.scale,case(c.is_computed) when 1 then convert(varchar(8000), (select z.definition from [%CATALOG%.]puted_columns z where z.object_id = c.object_id and z.column_id = c.column_id)) else '' end as colnB,case(c.is_nullable) when 1 then 'NULL' else 'NOTNULL' end,case(c.is_identity) when 1 then 'identity' else '' end,case when(er_type_id <> c.system_type_id) then (select from [%CATALOG%.]sys.types d where er_type_id = er_type_id) else '' end as colnC,convert(varchar(8000), d.definition),case (c.is_identity) when 1 then convert(varchar, i.seed_value) + ', ' + convert(varchar, i.increment_value) else '' end as colnD,(select convert(varchar(8000), value) from ::fn_listextendedproperty(NULL, 'user', , 'table', , 'column', ) where name ='MS_Description') as colnE,c.collation_name,case (i.is_not_for_replication) when 1 then 'true' else 'false' end,,case(c.is_sparse) when 1 then 'true' else 'false' end,case(c.is_filestream) when 1 then 'true' else 'false' end,case(c.is_rowguidcol) when 1 then 'true' else 'false' endfrom[%CATALOG%.]sys.columns cjoin [%CATALOG%.]sys.objects o on (o.object_id = c.object_id)join [%CATALOG%.]sys.schemas u on (u.schema_id = o.schema_id)join [%CATALOG%.]sys.types t on (er_type_id = c.system_type_id)left outer join [%CATALOG%.]sys.identity_columns i on (i.object_id = c.object_id and i.column_id = c.column_id)left outer join [%CATALOG%.]sys.default_constraints d on (d.object_id = c.default_object_id)whereo.type in ('U', 'S', 'V')[ and = %.q:OWNER%][ and =%.q:TABLE%]order by 1, 2, 3解决⽅案:在PD的 tools-->resources-->dbms-->sql server 2008打开DBMS属性窗⼝,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->column-->SQLlistquery修改其中的内容为:{OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COMMENT, ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}select,,c.column_id,,case when c.system_type_id in (165, 167, 231) and c.max_length = -1 then + '(Max)' else end,c.precision,case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else (c.max_length) end end as colnA,c.scale,case(c.is_computed) when 1 then convert(varchar(8000), (select z.definition from [%CATALOG%.]puted_columns z where z.object_id = c.object_id and z.column_id = c.column_id)) else '' end as colnB,case(c.is_nullable) when 1 then 'NULL' else 'NOTNULL' end,case(c.is_identity) when 1 then 'identity' else '' end,case when(er_type_id <> c.system_type_id) then (select from [%CATALOG%.]sys.types d where er_type_id = er_type_id) else '' end as colnC,convert(varchar(8000), d.definition),case (c.is_identity) when 1 then convert(varchar, i.seed_value) + ', ' + convert(varchar, i.increment_value) else '' end as colnD,convert(varchar(8000),e.value),c.collation_name,case (i.is_not_for_replication) when 1 then 'true' else 'false' end,,case(c.is_sparse) when 1 then 'true' else 'false' end,case(c.is_filestream) when 1 then 'true' else 'false' end,case(c.is_rowguidcol) when 1 then 'true' else 'false' endfrom[%CATALOG%.]sys.columns cjoin [%CATALOG%.]sys.objects o on (o.object_id = c.object_id)join [%CATALOG%.]sys.schemas u on (u.schema_id = o.schema_id)join [%CATALOG%.]sys.types t on (er_type_id = c.system_type_id)left outer join [%CATALOG%.]sys.identity_columns i on (i.object_id = c.object_id and i.column_id = c.column_id)left outer join [%CATALOG%.]sys.default_constraints d on (d.object_id = c.default_object_id)left outer join [%CATALOG%.]sys.extended_properties e on (e.class=u.schema_id and e.major_id=o.object_id and e.minor_id = c.column_id and =N'MS_Description')whereo.type in ('U', 'S', 'V')[ and = %.q:OWNER%][ and =%.q:TABLE%]order by 1, 2, 32. 表注释原为:{OWNER, TABLE, TABLE_TYPE, COMMENT}select,,case (o.type) when 'S' then 'SYSTEM TABLE' else 'TABLE' end,(select convert(varchar(8000), value) from ::fn_listextendedproperty(NULL, 'user', , 'table', , null, null) where name = 'MS_Description') as colnfrom[%CATALOG%.]sys.sysobjects ojoin [%CATALOG%.]sys.schemas u on (u.schema_id = o.uid)whereo.type in ('U', 'S')[ and = %.q:OWNER%]order by 1, 2解决办法:在PD的 tools-->resources-->dbms-->sql server 2008打开DBMS属性窗⼝,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->Table-->SQLlistquery修改其中的内容为:{OWNER, TABLE, TABLE_TYPE, COMMENT}select,,case (o.type) when 'S' then 'SYSTEM TABLE' else 'TABLE' end,convert(varchar(8000), e.value) as colnfrom[%CATALOG%.]sys.sysobjects ojoin [%CATALOG%.]sys.schemas u on (u.schema_id = o.uid)left join [%CATALOG%.]sys.extended_properties e on (e.class=u.schema_id and e.major_id=o.id and e.minor_id=0 and =N'MS_Description') whereo.type in ('U', 'S')[ and = %.q:OWNER%]order by 1, 23. 反向⼯程后,在Users中删除dbo⽤户,然后⽣成脚本即可运⾏。
数据库基础:如何查看并导出数据表中字段的注释信息
查看并导出SQL Server 2000数据表中字段的注释信息: 此⽰例为导出某个表注释的语句:(表名是bbs_bank_log) SELECT AS 表名, AS 列名, AS 数据类型, syscolumns.length AS 数据长度, CONVERT(char, sysproperties.[value]) AS 注释 FROM sysproperties RIGHT OUTER JOIN sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xtype = systypes.xtype ON sysproperties.id = syscolumns.id AND sysproperties.smallid = syscolumns.colid WHERE (sysobjects.xtype = 'u' OR sysobjects.xtype = 'v') AND ( <> 'sysname') --and CONVERT(char,sysproperties.[value]) <> 'null' --导出注释不为'null'的记录 --AND ( = 'bbs_bank_log') --逐个关联表名,可以⽤or连接条件 ORDER BY 表名 注意事项: 上⽂中的语句是导出某个表的所有注释,如果你需要简单的列出表的所有注释,语句如下: SELECT CONVERT(char, [value]) AS Expr1 FROM sysproperties sysobjects是系统对象表,syscolumns是系统字段信息表,systypes是系统类型表。
Powerdesigner和sysbase用法
1、M,P,D表示的意思后面的三列CheckBox分别代表:∙M:此属性不允许为空值∙P:此属性为主键标识∙D:为可显示属性2、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)原因:生成oracle脚本时对字符长度有限制,缺省设置是30,使得不能大于15个字符。
而ms sql server2000就没有,缺省设置是128解决方法:1、直接修改出错的内容的长度,使之小于15个字符。
2、修改设置的长度【这样改会不会在以后oracle中有问题?】Database -Edit Current DBMS -script-objects-Index-MaxLenDatabase -Edit Current DBMS -script-objects-MaxConstLen另外,如果column的长度超过15也会出错,那就修改:Database -Edit Current DBMS -script-objects-column-MaxLen出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!3、在修改name的时候,code的值将跟着变动,很不方便修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。
4、Powerdesigner的反向工程:Power Designer的反向工程Power Designer是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。
powerdesigner导出数据库设计文档
一、导出数据库设计文档的重要性数据库设计文档是数据库开发和维护的重要依据,它包含了数据库的结构、关系、字段定义等重要信息,对于数据库管理人员和开发人员来说具有非常重要的作用。
在数据库设计工具PowerDesigner中,导出数据库设计文档可以帮助用户更好地理解和管理数据库的设计,因此具有非常重要的意义。
二、PowerDesigner的数据库设计功能简介PowerDesigner是一款功能强大的数据库设计工具,它具有可视化的数据库设计界面,支持多种数据库评台的设计和管理。
在PowerDesigner中,用户可以创建数据模型、设计数据库结构、定义表和字段以及编写数据字典等。
PowerDesigner还提供了丰富的导出功能,可以将数据库设计文档导出为PDF、Word、Excel等格式,方便用户进行查阅和备份。
三、使用PowerDesigner导出数据库设计文档的步骤1. 打开PowerDesigner软件,并打开目标数据库设计文件。
2. 在PowerDesigner界面中,选择“文件”菜单,然后选择“导出”选项。
3. 在导出设置界面中,选择导出格式(如PDF、Word、Excel等),并设置导出的内容和样式。
4. 点击“确定”按钮,完成导出数据库设计文档的操作。
四、PowerDesigner导出数据库设计文档的常见问题及解决方法1. 导出格式不符合要求:在PowerDesigner中,用户可以选择多种导出格式,但有时可能需要自定义导出格式以满足特定的要求。
可以通过修改导出设置或者使用PowerDesigner的自定义导出功能来解决该问题。
2. 导出内容不完整:有时候在导出数据库设计文档时,可能出现导出内容不完整的情况。
这可能是因为设计文档过大,导致部分内容无法完整导出。
可以尝试对设计文档进行分段导出,或者调整导出设置来解决该问题。
3. 导出样式不符合要求:有时导出的数据库设计文档样式可能与要求不符,例如字体、颜色、布局等。
PowerDesigner逆向工程Orcale11g方法
1、安装Oracle客户端,如安装名称为OraClient11g_home1,配置Net Configuration Assistant,并测试成功。
2、配置ODBC,通过[控制面板]->[管理工具]->[数据源]->[系统DSN],添加新数据源,选择Oracle in OraClient11g_home1。
如下图所示。
3、在PowerDesigner12.5中选择菜单项[Database]->[Change current DBMS],选择ORACLEVersion 10gR2,由于PowerDesigner12.5没有Oracle11g,选择ORACLE Version 10gR2。
如果不执行该步骤,可能出现以下问题:(a)Unable to list users.[Oracle][ODBC][Ora]ORA-00942:表或视图不存在 SQLSTATE=S0002(b)Unable to list groups.[Oracle][ODBC][Ora]ORA-00942:表或视图不存在SQLSTATE=S0002(c)Unable to list triggers.[Oracle][ODBC][Ora]ORA-00942:表或视图不存在SQLSTATE=S0002(d)Unable to reverse engineer group attributes. [Oracle][ODBC][Ora]ORA-00942: 表或视图不存在SQLSTATE = S00024、在PowerDesigner12.5中选择菜单项[Database]->[Reverse Engineer Database],如下图,选择Using a data source, 选择步骤2中配置的数据源。
点击确定开始执行逆向工程。
powerdesigner 导出数据库设计文档
标题:使用PowerDesigner导出数据库设计文档一、介绍PowerDesignerPowerDesigner是一款功能强大的建模工具,广泛用于数据库设计、业务流程建模、数据仓库设计等领域。
它不仅可以帮助用户进行可视化的数据库设计,还可以生成数据库设计文档,方便用户进行交流和共享设计成果。
二、数据库设计文档的重要性数据库设计文档是数据库设计过程中的重要成果之一,它记录了数据库的结构、关系、约束等信息,对数据库的使用、维护和优化都具有重要的指导意义。
一份清晰、完整的数据库设计文档能够帮助团队成员更好地理解数据库的设计思路,提高团队的协作效率。
三、PowerDesigner导出数据库设计文档的方式在PowerDesigner中,可以通过以下步骤导出数据库设计文档:1. 打开PowerDesigner软件,并载入需要导出设计文档的数据库模型文件。
2. 在菜单栏中找到“文件”-“导出”-“文档”命令,点击进入导出文档的设置界面。
3. 在设置界面中,可以选择需要导出的对象类型,包括表、索引、视图、存储过程等。
4. 设置导出文档的格式和样式,可以选择HTML、PDF、Word等格式,并根据需要调整样式和排版。
5. 确认设置无误后,点击“导出”按钮,即可生成数据库设计文档。
四、数据库设计文档的内容数据库设计文档通常包括以下内容:1. 数据库概述:包括数据库名称、版本、创建日期、修改历史等基本信息。
2. 数据模型:以图形方式展示数据库的表结构、关系以及约束信息。
3. 表定义:详细描述每张表的字段信息、数据类型、长度、约束条件等。
4. 视图定义:如果有视图,则包括视图的定义和相关信息。
5. 存储过程和触发器:包括存储过程、触发器的定义和用途说明。
6. 索引和约束:列出数据库中所有索引和约束,包括主键、外键、唯一约束等。
五、导出文档的注意事项在导出数据库设计文档时,需要注意以下事项:1. 确保数据库模型已经完整设计,包括表结构、关系、约束等信息已经确认无误。
PowerDesigner PDM逆向工程研究与应用
PowerDesigner PDM 逆向工程研究与应用PowerDesigner 是由Sybase 公司推出的一款数据建模工具,该软件可以帮助开发者快速地设计、构建和维护数据库,同时提供了丰富的功能和工具,方便用户进行复杂的数据处理和管理。
本文主要介绍PowerDesigner PDM 逆向工程的研究与应用。
在数据库设计和管理过程中,逆向工程是一个非常重要的环节,它可以大大提高数据建模的效率和准确性。
下面我们将从两个方面来讲解PowerDesigner PDM 逆向工程的研究和应用。
一、PDM 逆向工程相关概念1、逆向工程逆向工程是指通过一定的技术手段,对某个物品的结构和功能进行分析和研究,并根据分析结果重构出该物品的制造工艺,以达到复制或者改进该物品的目的。
在数据库设计中,逆向工程是指将现有的数据库中的数据表结构和关联关系导入到PowerDesigner 中,以便于开发人员进行修改和维护。
2、PDM在PowerDesigner 中,PDM 指的是Physical Data Model,即物理数据模型。
PDM 是一种描述数据库结构和元数据之间关系的模型,用于在PowerDesigner 中进行数据库建模和设计。
3、逆向工程流程逆向工程主要包含以下流程:连接数据库、导入模型、确认结构和属性、验证数据并加载对象、调整模型和加载数据、导入模型、更新模型。
在这个过程中,PowerDesigner 会通过访问数据库元数据来获取表结构、约束、触发器等信息,并将其作为基础来创建一个物理模型。
二、PDM 逆向工程的应用1、PDM 逆向工程的优点在进行数据库设计和管理时,PDM 逆向工程具有以下优点:(1)能够快速导入数据库结构,提高工作效率。
(2)可调整模型和加载数据,更加准确地映射数据库。
(3)可以通过PowerDesigner 提供的工具进行修改和维护,便于后续工作。
2、逆向工程的实现PowerDesigner 提供了多种方式来实现数据库逆向工程,例如:(1)从数据库直接导入物理模型。
Powerdesigner_反向工程
Powerdesigner 反向工程Powerdesigner方向工程的作用是:
将数据库中的信息反向出来表达成一个物理概念视图(PDM与具体数据库有关的实体ER 图),从而方便导向成逻辑概念视图(CDM---与具体数据库无关的实体ER图)
1.建立一个odbc数据源
1.1打开odbc管理器
在控制面板-〉管理工具-〉数据源(odbc)
1.2添加一个oracl e驱动
1.3选择数据库所在服务器
1.4填写连接用户名密码
1.5选择数据库
1.5连接成功
测试数据源成功后点击确定。
2.用powerdesigner反向工程2.1打开反向工程功能
2.2选择数据库类型
2.3填写连接信息
2.4勾选反向的内容
2.5 反向工程时的等待
2.6 查看结果
在上面的工具栏,右键单击,弹出一个面板,选中Palette
出来控制面板,选择缩小镜,则可以看到整个数据库的缩略PDM图
2.7重命名保存pdm
2.通过powerdesigner中的表制作成文档
a)Powerdesigner中的表就是要生成文档的表内容。
b)鼠标右键
c)
d)
e)
f)
g)
i)设置文档显示内容
j)
k)
m)认为文档是自己要求的内容后,点击“完成”
n)。
PowerDesigner一键导出数据库设计表结构
PowerDesigner⼀键导出数据库设计表结构1、背景帮朋友弄下数据库设计,⼜⽤到PowerDesigner,因为还要数据库设计⽂档(word),还想着怎么把数据库结构导出呢,发现以前弄过,⼀键导出,很⽅便,分享下,祝好运!2、解决⽅案2.1 执⾏窗⼝依次点击,Tools->Execute Commands ->Edit/Run Script2.2 执⾏脚本第⼀次执⾏,复制脚本到空⽩编辑处,点击三⾓执⾏按钮就可以了,执⾏完成后可以保存脚本,以便下次⽤,下次直接打开⽂件执⾏就可以了。
2.3 执⾏效果(1)点击执⾏后,会⾸先⽣成临时excel⽂件。
(2)打开excel后,有两个sheet,⼀个sheet是表⽬录,内容为全部表名称及链接;⼀个sheet所有表结构信息;2.4 脚本'******************************************************************************Option ExplicitDim rowsNumrowsNum = 0'-----------------------------------------------------------------------------' Main function'-----------------------------------------------------------------------------' Get the current active modelDim ModelSet Model = ActiveModelIf (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) ThenMsgBox "The current model is not an PDM model."Else' Get the tables collection'创建EXCEL APPdim beginrowDIM EXCEL, SHEET, SHEETLISTset EXCEL = CREATEOBJECT("Excel.Application")EXCEL.workbooks.add(-4167)'添加⼯作表EXCEL.workbooks(1).sheets(1).name ="表结构"set SHEET = EXCEL.workbooks(1).sheets("表结构")EXCEL.workbooks(1).sheets.addEXCEL.workbooks(1).sheets(1).name ="⽬录"set SHEETLIST = EXCEL.workbooks(1).sheets("⽬录")ShowTableList Model,SHEETLISTShowProperties Model, SHEET,SHEETLISTEXCEL.workbooks(1).Sheets(2).SelectEXCEL.visible = true'设置列宽和⾃动换⾏sheet.Columns(1).ColumnWidth = 20sheet.Columns(2).ColumnWidth = 20sheet.Columns(3).ColumnWidth = 20sheet.Columns(4).ColumnWidth = 40sheet.Columns(5).ColumnWidth = 10sheet.Columns(6).ColumnWidth = 10sheet.Columns(1).WrapText =truesheet.Columns(2).WrapText =truesheet.Columns(4).WrapText =true'不显⽰⽹格线EXCEL.ActiveWindow.DisplayGridlines = FalseEnd If'-----------------------------------------------------------------------------' Show properties of tables'-----------------------------------------------------------------------------Sub ShowProperties(mdl, sheet,SheetList)' Show tables of the current model/packagerowsNum=0beginrow = rowsNum+1Dim rowIndexrowIndex=3' For each tableoutput "begin"Dim tabFor Each tab In mdl.tablesShowTable tab,sheet,rowIndex,sheetListrowIndex = rowIndex +1Nextif mdl.tables.count > 0 thensheet.Range("A" & beginrow + 1 & ":A" & rowsNum).Rows.Groupend ifoutput "end"End Sub'-----------------------------------------------------------------------------' Show table properties'-----------------------------------------------------------------------------Sub ShowTable(tab, sheet,rowIndex,sheetList)If IsObject(tab) ThenDim rangFlagrowsNum = rowsNum + 1' Show propertiesOutput "================================"sheet.cells(rowsNum, 1) =sheet.cells(rowsNum, 1).HorizontalAlignment=3sheet.cells(rowsNum, 2) = tab.code'sheet.cells(rowsNum, 5).HorizontalAlignment=3'sheet.cells(rowsNum, 6) = ""'sheet.cells(rowsNum, 7) = "表说明"sheet.cells(rowsNum, 3) = ment'sheet.cells(rowsNum, 8).HorizontalAlignment=3sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 7)).Merge'设置超链接,从⽬录点击表名去查看表结构'字段中⽂名字段英⽂名字段类型注释是否主键是否⾮空默认值sheetList.Hyperlinks.Add sheetList.cells(rowIndex,2), "","表结构"&"!B"&rowsNumrowsNum = rowsNum + 1sheet.cells(rowsNum, 1) = "字段中⽂名"sheet.cells(rowsNum, 2) = "字段英⽂名"sheet.cells(rowsNum, 3) = "字段类型"sheet.cells(rowsNum, 4) = "注释"sheet.cells(rowsNum, 5) = "是否主键"sheet.cells(rowsNum, 6) = "是否⾮空"sheet.cells(rowsNum, 7) = "默认值"'设置边框sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Borders.LineStyle = "1" 'sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 9)).Borders.LineStyle = "1" '字体为10号sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Font.Size=10Dim col ' running columnDim colsNumcolsNum = 0for each col in tab.columnsrowsNum = rowsNum + 1colsNum = colsNum + 1sheet.cells(rowsNum, 1) = 'sheet.cells(rowsNum, 3) = ""'sheet.cells(rowsNum, 4) = sheet.cells(rowsNum, 2) = col.codesheet.cells(rowsNum, 3) = col.datatypesheet.cells(rowsNum, 4) = mentIf col.Primary = true Thensheet.cells(rowsNum, 5) = "Y"Elsesheet.cells(rowsNum, 5) = " "End IfIf col.Mandatory = true Thensheet.cells(rowsNum, 6) = "Y"Elsesheet.cells(rowsNum, 6) = " "End Ifsheet.cells(rowsNum, 7) = col.defaultvaluenextsheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,7)).Borders.LineStyle = "3"'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,9)).Borders.LineStyle = "3"sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,7)).Font.Size = 10rowsNum = rowsNum + 2Output "FullDescription: " + End IfEnd Sub'-----------------------------------------------------------------------------' Show List Of Table'-----------------------------------------------------------------------------Sub ShowTableList(mdl, SheetList)' Show tables of the current model/packageDim rowsNorowsNo=1' For each tableoutput "begin"SheetList.cells(rowsNo, 1) = "主题"SheetList.cells(rowsNo, 2) = "表中⽂名"SheetList.cells(rowsNo, 3) = "表英⽂名"SheetList.cells(rowsNo, 4) = "表说明"rowsNo = rowsNo + 1SheetList.cells(rowsNo, 1) = Dim tabFor Each tab In mdl.tablesIf IsObject(tab) ThenrowsNo = rowsNo + 1SheetList.cells(rowsNo, 1) = ""SheetList.cells(rowsNo, 2) = SheetList.cells(rowsNo, 3) = tab.codeSheetList.cells(rowsNo, 4) = mentEnd IfNextSheetList.Columns(1).ColumnWidth = 20SheetList.Columns(2).ColumnWidth = 20SheetList.Columns(3).ColumnWidth = 30SheetList.Columns(4).ColumnWidth = 60output "end"End Sub更多信息请关注公众号:「软件⽼王」,关注不迷路,软件⽼王和他的IT朋友们,分享⼀些他们的技术见解和⽣活故事。
PowerDesigner将数据库进行逆向工程
PowerDesigner将数据库进行逆向工程
1.前提
✓安装PowerDesigner软件;
✓安装oracle客户端;
2.操作步骤
2.1.建立数据源
1)打开windows中ODBC数据源管理器:开始‐》所有程序‐》控制面板‐》管理工具‐》
数据源(ODBC)。
图:数据源管理器
2)选择用户DSN‐》添加‐》oracle数据库驱动(对应数据源驱动)‐》单击完成。
图:数据源驱动
3)选择已经配好的TNS Service Name(oracle数据库本地服务名)‐》单击OK即可完
成。
图:数据源配置
2.2.PowerDesigner反向工程
1)逆向工程,将数据库结构反向处理。
File‐》Reverse Engineer‐》Database
图:方向菜单
2)单击图:反向菜单中的【Database】后弹出新建物理模型窗体,存储反向结果。
图:新建物理模型
3)选择要反向的数据源,单击【Using a data source】‐》单击,选择方向数据源。
图:数据源选择
4)连接数据源。
图:连接数据源
5)单击图:数据源选择中【确定】按钮,开始数据库逆向工程。
PowerDesigner添加数据源-反向工程-table面板加注释
在PowerDesigner 15.1中,数据库的表的字段没有显示注释想要正确显示表字段的注释,效果如下图所示:需要先通过powerdesigner的反向工程,根据数据库生成physical model,在反向工程之前先建好数据源一、创建数据源1、database》configure Connections2、选择,connection Profiles3、点击“add data source”如下:配置完成,点击“Test Connection”按钮,测试成功即可。
二、反向工程生成表结构1、file》reverse engineer 》database,如下图所示:2、选择使用的数据库,如下3、点击确定选择已经配置好的数据源4、点击确定输入用户名、密码,连接即可5、连接成功后,就会显示所有的表,你可以针对性的选择你需要的表进行生成如下,点击ok即可。
就生成了physical model。
三、生成的物理模型table面板上没有显示注释,如何让注释显示在table面板上:1、Tools》Display Preferences,点击进去2、选择table,点击“Advance”3、columns》list columns点击预览将code移到第一行,然后点击“ok”。
弹出选择“ALL symbols”,点击“ok”即可。
4、执行脚本comment2name.vbs 将显示name的部分由comment来代替掉。
将以下脚本代码复制粘贴到以上对话框的空白处。
Option ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl ' the current model' get the current active modelSet mdl = ActiveModelIf (mdl Is Nothing) ThenMsgBox "There is no current Model "ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) ThenMsgBox "The current model is not an Physical Data model. "ElseProcessFolder mdlEnd IfPrivate sub ProcessFolder(folder)On Error Resume NextDim Tab 'running tablefor each Tab in folder.tablesif not tab.isShortcut then = mentDim col ' running columnfor each col in tab.columns if ment="" thenelse= mentend ifnextend ifnextDim view 'running viewfor each view in folder.Viewsif not view.isShortcut then = mentend ifnext' go into the sub-packagesDim f ' running folderFor Each f In folder.Packagesif not f.IsShortcut thenProcessFolder fend ifNextend sub接着点击保存再运行脚本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何用PowerDesigner逆向工程导出ORACLE数据库表+字段+注释
问题一:PowerDesigner在设计时,如何显示表中的注释选项
选定一个编辑的表,右键- >Properties- >Columns- >Customize Columns and Filter(或直接用快捷键Ctrl+U)- >Comment(前面打勾)- >OK
弹出的窗口中,选中COMMENT
确定后注释列就出来了,这样所有的表都是这样的(刚才的操作像是在操作一个模板一样)
----------------------------------------------------------------------------------------------------------------------------------
问题二:如何用PowerDesigner的逆向工程,从数据库中加载数据表信息?
第一步:先反向工程,文件-逆向工程-DATABASE(从数据库中加载数据表,字段=信息)
选择数据库类型:如我用oracle 9i
接下来会让我们选择一个ODBC数据源,像我这个已经建立好了的。
如果没有的话,就要去建立一个新的:逆向工程完成后生成的表
到这里,我们的逆向工程,就完成了。
问题三:如何用PowerDesigner的导出报告(report)生成数据库设计WORD文档(或HTML格式的文档)?
先用问题一所述,显示表的注释信息,然后点reports->reports Wizard
下一步,选择生成格式,一个是HTML网页格式,另一个是RTF格式,也就是WORD格式,
打印模板我选一个Professional,用这个就差不多够了,当然也可以选择别的report template,我之所以用这个,是因为发现模板生成的report有很多我不关心的内容。
继续下一步
先选择数据表,然后把表名和表的注释选上,注意顺序和宽度,如50MM
再选择数据表中的列,然后把列名,列的类型,列长度,列的注释选上,注意顺序和宽度,如50MM
确定一下就可以了。
---------参考-----------------
使用PowerDesigner生成报告的方法
//////////////////////////////////////////建立一个新的ODBC数据源开始//////////////////////////////////////////// 选择Database->configure connections,转到system dsn标签,
点击Add按钮,选数据库类型Oracle,点击完成。
显示如下:输入DataSource Name“PDMTest”;输入ServerName“Database”,配置完成。
点击“Test Connect”输入ServerName“Database”,用户名和密码,若连接成功,显示如下:
然后就会出现一个下面的图片,和我上面建立好的差不多一样吧:)
//////////////////////////////////////////建立一个新的ODBC数据源结束//////////////////////////////////////////// 接着,选择我们感兴趣的表,视图等
最后开始生成中。
1.在创建的pdm根结点上点击右键,选择new---report,在出现环境下选择需要生成报告的内容;
如:选table---table column list,在右边框中会出现所选内容;
2.在右边项上击右键,选layout,在弹出界面上选择需要在文档中显示的项目;如:名称,注释,数据类型,长度;
3.通过右上按钮generate RTF/generate HTML生成相应文档.如:
表格Bids
表格Bids的专栏清单
名称注释数据类型长度
bid 竟拍记录ID NUMBER(22) 22
bpid 竟拍编号INT
uno UNO NUMBER(12) 12
price 竟拍价NUMBER(12) 12
quantity 数量INT
bdate 出价时间DATE
state 状态BOOLEAN
总结一下:
首先:一、建立ODBC数据源。
1, 打开系统ODBC数据源,位置“控制面板--管理工具--数据源(ODBC),也可以在powerDesigner 中的database中,configure connections中配置。
2,选择系统DSN,点击添加按钮,会弹出如下界面,选择与数据库相匹配的驱动程序
3、该数据源建立成功,可以该数据源名称进行连接测试
这里的配置搞了半天,data source name随便写,可以指定一个在后面使用,如"wendaoke",tns service name是oracle中database,就是卡在这里,搞了半天,菜,test connection.
二、逆向工程
1.选择Database菜单下的Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源上面指定的,“wendaoke”
2、点击确定后,显示此数据库中所有表、视图、用户(这个选择一下该数据库的用户)。
根据需要选择后,转换成pdm。
通过SQL脚本逆向工程生成PDM
如果你不光有个正在使有的数据库,你还有一下建立库的脚本,那你发财了!因为用.sql的脚本生成的模型,就不存在用数据库生成的缺点了,具体操作如下:
1、数据库SQL脚本文件crebas.sql。
2、还是创建一个pdm,选择Database--->Reverse Engineer Database,选择Using script files
生成模型后要导出数据库建库脚本
导好的模型,当然是用来修改和导出建库脚本的,操作方法如下
选择database--->generate database
选择数据库用户,同时可选要导出的表,最后点击确定,如果不能正常生成脚本提示模型错误,则在上图中的options中将check modle 的选项去掉,点击确定,生成sql脚本,
这时生成的脚本不要着急去用,因为可能是有问题,用记事本或其它工具打开这个脚本,你会发现在所属名上都会加上""号,用Ctrl+H,将所有"替换为空,就大功告成了!。