软件工具——PowerDesigner逆向工程导出Oracle数据库表结构

版权声明:原创博文,转载请注明出处 https://blog.csdn.net/qq_15903671/article/details/83113168

一、准备工作:

准备工作包括,安装或已经有创建好的oracle数据库,创建好user、tablespace、table等;安装Oracle客户端、PLSQL等软件并配置好数据库连接,安装PowerDesigner软件。可以参考我的博文:

PowerDesigner安装教程:https://blog.csdn.net/qq_15903671/article/details/81977047

Oracle数据库安装教程:https://blog.csdn.net/qq_15903671/article/details/82904993

Oracle客户端安装教程:https://blog.csdn.net/qq_15903671/article/details/82908221

二、PowerDesigner配置数据源

打开PowerDesigner,菜单栏File-new,创建一个Physical Data Model

Model type 选择Physical Data Model, Model name自己随便写一个,点击确定,可以看到PowerDesigner主页面出现编辑背景栏,上方菜单栏出现database菜单。

选择菜单栏Database--Change Current DBMS..更改当前连接的DBMS

DBMS选择自己要连接的数据库版本,点击确定。

菜单栏选择Database--Connect.. 连接数据库

选择ODBC machine data source,点击Configure...按钮

 

在ODBC Machine Data Sources菜单下,点击Add Data Source图标或者键盘Ctrl+N

警告可以无视,点击确定。

没有权限就选择用户数据源,有权限可以选择系统数据源,点击下一步。

选择自己对应的Oracle Client驱动程序(上图是因为我装了两次),点击下一步

点击完成。

Data Source Name随便写个自己记得住的名字,Description随便写,TNS Service Name在配置OracleClient时,TNS文件里有,User ID就是数据建库登陆用户名。点击OK

可以看到多了一个QFtest的数据源,点击确定。

回到这个Connect to a Data Source页面,下拉列表中多了一个刚刚配置的QFtest数据源,选择这个数据源之后填写login信息。

三、检查数据源连接。

一般完成上面步骤就已经成功连接数据源了,但是也有手误写错配置的时候,下面检查一下数据源是否连接成功。

Database--Configure connections...

眼熟的页面,双击QFtest数据源

上方截图删掉了TNS Service Name信息,需要补全,点击Test Connection

上方截图中删掉了Service Name和User Name,需要补全,输入密码,点击OK

四、PowerDesigner逆向工程导出数据库表结构

菜单栏选择File--Reverse Engineer--database...

Model name其实随便写,DBMS选择合适的驱动,下面选择share the DBMS definition,点击确定。

选择Using a data source,然后点击下方选择栏

上图删除了User ID和Password,需要补全,点击Connect。

数据源选择好之后点击确定。

选择需要导出的表,点击OK,开始导出表。

导出之后会出现备注找不到,name和Code相等的情况。

五、处理没有中文备注的问题。

首先菜单栏选择Tools--General Options...

选择Dialog,将Name to Code mirroring去掉,使name和code可以不一致。点击OK

然后菜单栏选择Tools--Excute Commands--Edit/Run Scripts...粘贴以下脚本

Option Explicit   
ValidationMode = True   
InteractiveMode = im_Batch   
  
Dim mdl 'the current model   
  
'get the current active model   
Set mdl = ActiveModel   
If (mdl Is Nothing) Then   
MsgBox "There is no current Model"  
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then   
MsgBox "The current model is not an Physical Data model."  
Else   
ProcessFolder mdl   
End If   
  
'This routine copy name into code for each table, each column and each view   
'of the current folder   
Private sub ProcessFolder(folder)   
  
Dim Tab 'running table   
for each Tab in folder.tables   
if not tab.isShortcut then   
if len(tab.comment) <> 0 then   
tab.name = tab.comment   
end if   
On Error Resume Next   
Dim col 'running column   
for each col in tab.columns   
if len(col.comment) <>0 then   
col.name =col.comment   
end if   
On Error Resume Next   
next   
end if   
next   
end sub

点击Run。备注会出现在表的Name列。上图Run之后可以直接Close关闭,可以按照默认路径保存当前脚本。其实Close脚本保存的时候会发现,在默认的脚本路径下(C:\Program Files (x86)\Sybase\PowerDesigner 12\VB Scripts)有一个Name2Code脚本文件,打开后会发现,其实就是上面这段脚本。

以上步骤完成后,PowerDesigner已经通过逆向工程导出数据库表结构了。

关闭软件时别忘记保存,全部选择D盘根目录的话会出现三个文件。

分别是model的pdm文件(主要是导出的table信息),数据源的dsn文件,工作空间的sws文件。

后续使用时,创建相关内容可以双击Workspace.sws打开工作空间,创建新的model等。如果只是想简单看看表结构,或者共享信息给他人,使用pdm文件。Test.dsn文件只是为了保存一下数据源信息,没用了可以删掉。

猜你喜欢

转载自blog.csdn.net/qq_15903671/article/details/83113168