一、生成sql server 2000或oracle建表sql脚本
1、新建一个物理模型,通过database菜单下的change current dbms可查看当前所用的dbms是什么类型的,比如sql server 2000 或oracle 10g,当前选择sql server 2000。
2、在新建的dbms为sql server 2000的物理模型中添加表及关系,通过database菜单下的generate database可将当前dbms的表结构及关系导出成sql语句。
3、若想将sql server 2000的表结构及关系变成oracl 10g的表结构及关系,可通过tools菜单下的generate physical data model,再选择dbms为oracle10g,就可生成oracl10g的表结构及关系。
4、若想将oracl10g中的表结构及关系导出成sql语句,执行database菜单下的generate database可将当前dbms的表结构及关系导出成sql语句。
注意:oracle10g生成的sql语句可能表名及字段名存在用引号括起的情况,不用担心,通过简单的设置即可解决。
二、powerdesigner生成数据库建表sql脚本时出现双引号解决方法(测试通过的软件版本为powerdesigner v15.1.0.2850)
powerdesigner生成数据库建表sql脚本时,尤其是oracle数据库时,表名一般会带引号。其实加引号是pl/sql的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照 oracle默认的设置建表(dba studio里面),默认是全部大写,这样,在oracle数据库里的字段就如“column_1”。如果你把引号去掉,oracle自动默认为全部大写,即“column_1”,所以这段sql在pl/sql中执行的时候是没有任何问题的,如果不加引号,在pl/sql会自动识别为大写。如果加了引号,sql或者hql查询“column_1='xxx'”时,就会报错:ora-00904: column_1: 无效的标识符,除非写为“‘column_1’='xxx'”。
这个问题是生成脚本格式的问题,因此,我们可以尝试在dbms配置文件中修改相应的格式设置来解决这个问题。选择“dbms properties”,选择script->sql->format,有一项casesensitivityusingquote,它的comment为“determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“yes”,改为“no”,点击【应用】按钮。
