最近在由PowerDesigner生成Oracle脚本时遇到了一些问题,好久不摸Oracle了,有些生疏,记录一下:

由于数据库模型创建的时候选择的是DB2所以需要首先更改一些数据库类型

导出脚本的步骤:
1、更改DBMS类型: Database --- change current DBMS -- 选中Oracle9i
2、Database --- Database Generation -- Selection 选项卡,
选择要导出的库表(点击Include Sub-packages 图标)可以选择所有的表。
3、点击确定,生成sql脚本。

生成脚本的时候报了一堆错误和警告,主要有下面三个错误:
1、Table code maximum length
2、Constraint name uniqueness
3、lncomplete join

第一个错误的修改方法:
Database -- Edit current DBMS,然后在左侧的树中选择Script--Object--Table将Maxlen 属性的值修改为128(256)。
需要修改Maxlen属性的还有Column等。修改完毕后保存,这个错误就没有了。

第二个错误,没有找到修改的办法,只好使用PD提供的自动修复功能修复之。方法是在错误上点击鼠标右键,有一个AUTO...的选项,点击即可。

第三个错误,没有找到修改办法,只好将有问题的关联全部删除......

修正以上三个错误之后,就可以生成sql脚本了。

生成了sql脚本,下面就是创建表了:

1、创建Oracle数据库。
2、创建表空间。
3、创建用户。

以上三个步骤的实际过程省略,都是使用Oracle的企业管理工具傻瓜式创建的,没啥好说的。

注意:
Oracle创建数据库开销很大,所以最好的办法就是,再一个现成的数据库上创建一个新的表空间,然后再给他分配一个用户。

创建表空间的时候,会分配一个表空间的初始值,如果数据大,就分配的大一些,否则就小一些,不过要注意,一定要选中:数据文件已满后自动扩展(AUTOEXTEND)的选项,增量根据数据库的实际情况选择恰当的值。否则,当表空间满了之后,会报:ORA-01658: 无法为表空间xxxx中的段创建 INITIAL 区 的错误。

创建用户的时候要给用户分配:CONNECT 、RESOURCE的角色。

用pl\sql连接oracle数据库:用刚创建的用户登陆数据库,然后tools--imp....导入sql文件即可。