PowerDesigner16.5 连接Oracle 11g 数据库 逆向生成ER图 以及所遇到的坑
这篇文章是根据其他两个帖子学习以及遇到的坑总结的。我主要是为自己记录一下,防止日后忘记 或找不到原帖。
这篇文章是介绍如何连接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.如下图所示进入设置连接。
3.进入Configure。
4.添加数据源。
5.填写设置,需要注意的是下面红色框内的选项。
特别需要注意的是 JDBC connection URL 需要改成自己的。 比如 jdbc:oracle:thin:@127.0.0.1:1521:xe
6.点击TestConnection 测试是否能够连接。
7.选择刚才设置好的数据源,点击确定。
8.选择数据源后,填写账户和密码。然后点击 Connect。
9.点击确定。
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
3. 选择 Table ,并在右侧勾选Comment 。然后点击 Advanced。
4.点击下图中的放大镜
5.下图是我的配置。
都设置好后保存(我选择的全部应用设置)。其实设置显示备注这个操作应该先设置,然后再生成ER图。如果你发现设置之后备注没有出现,那么请更新模型或重新生成ER图。
上一篇: python面向对象编程