欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

程序员文章站 2022-05-08 14:44:39
...

这篇文章是根据其他两个帖子学习以及遇到的坑总结的。我主要是为自己记录一下,防止日后忘记 或找不到原帖。

 

这篇文章是介绍如何连接Oracle 生成 ER 图

https://blog.csdn.net/weixin_41477980/article/details/80298594

然后这篇文章解决了生成的ER图没有注释列的问题

https://blog.csdn.net/yangshengli/article/details/9038243

=========================================================================

我的环境与上面帖子中的稍有不同,但是也都大同小异。我主要记录一下遇到i的坑。

1. JDK 需要安装32位的,不然PowerDesigner会报错。并且需要配置电脑的环境变量 (系统变量),如果已安装了64位的JDK也可以再安装32位的然后把原来64的环境变量配置改为32的路径(我是这么做的,但是我没试过两个都配置)。

2. 电脑需要至少安装了Oracle的客户端 (Oracle Client)。

3.需要下载 ojdbc14.jar 并放到Oracle目录 例如   "C:\app\【你电脑的用户名比如administrator】\product\11.2.0\client_1\jdbc\lib\ojdbc14.jar"。

4.设置环境变量 变量名 CLASSPATH 值为ojdbc14.jar的所在目录(就比如上面的那个)。

=========================================================================

下面直接进入生成ER图的步骤 (原帖地址:https://blog.csdn.net/weixin_41477980/article/details/80298594)

1.打开PowerDesigner 选择 File->Reverse Engineer ->Database,名字自己取一个 DBMS 选择 ORACLE Version 11g。

2.如下图所示进入设置连接。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

3.进入Configure。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

4.添加数据源。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

5.填写设置,需要注意的是下面红色框内的选项。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

特别需要注意的是 JDBC connection URL 需要改成自己的。 比如 jdbc:oracle:thin:@127.0.0.1:1521:xe

6.点击TestConnection 测试是否能够连接。

7.选择刚才设置好的数据源,点击确定。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

8.选择数据源后,填写账户和密码。然后点击 Connect。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

9.点击确定。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

10.然后会出现所有的表,点击确定后生成 ER图。

=========================================================================

生成ER图之后会发现没有注释(Comment)

解决方案如下:(原帖地址:https://blog.csdn.net/yangshengli/article/details/9038243)

1.在PowerDesigner的 tools --> resources --> dbms --> 双击oracle version 10g 打开DBMS属性窗口,在general选项卡中选择script-->objects-->column-->SQLlistquery修改其中的内容为: 

{OWNER, TABLE, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, NOTNULL EX, DEFAULT, COMMENT, COLNNAME, ExtNotNullConstraintName EX, ExtNotNullDeferOption EX}
 
select
   c.owner,
   c.table_name,
   c.column_name,
   decode(c.data_type_owner, NULL, replace(c.data_type, 'TIMESTAMP(6)', 'TIMESTAMP'), c.data_type_owner||'.'||c.data_type),
   decode(c.data_type_owner, NULL, decode(c.character_set_name, NULL, to_char(decode(c.data_type, 'RAW', c.data_length, c.data_precision)), to_char(c.char_col_decl_length) || decode(c.char_used, 'C', ' char', '')), NULL),
   c.data_precision,
   decode(c.data_precision, NULL, NULL, c.data_scale),
   decode(c.nullable, 'N', 'NOT NULL', [%ISDBAUSER%?'%SqlGetNotNullConstName.'||c.owner||c.table_name||c.column_name||'nullable%':'']),
   c.data_default,
   m.comments,   
   m.comments,  
   [%ISDBAUSER%?'%SqlGetNotNullConstName.'||c.owner||c.table_name||c.column_name||'%':''],
   [%ISDBAUSER%?'%SqlGetNotNullConstName.'||c.owner||c.table_name||c.column_name||'state%':'']
from
   sys.all_tab_columns c,
   sys.all_col_comments m
where
   c.table_name = %.q:TABLE%
   and c.table_name = m.table_name
   and c.column_name = m.column_name
   and c.owner = m.owner
[  and c.owner=%.q:SCHEMA%]
order by
   c.owner, c.table_name, c.column_id

 

2.设置显示的列 Tools -> Display Preferences

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

3. 选择 Table ,并在右侧勾选Comment 。然后点击 Advanced。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

4.点击下图中的放大镜

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

5.下图是我的配置。

PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑

 

都设置好后保存(我选择的全部应用设置)。其实设置显示备注这个操作应该先设置,然后再生成ER图。如果你发现设置之后备注没有出现,那么请更新模型或重新生成ER图。