数据库脚本生成

最近在由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文件即可。

转载于:https://my.oschina.net/play/blog/4543

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、简介 1.1前言 1、由于最近工作一直用Oracle,故对Oracle数据库研究为对象。 2、根据工作业务需求实际情况进行功能研发。为什么要开发呢?因为在数据库升级或者迁移的时候,为了保证不同环境不同数据库数据保持同步,故数据库SQL脚本非常作用。比如:数据库脚本,副脚本,增量脚本。 3、 什么是主脚本、副脚本、增量脚本呢? 3.1、主脚本数据库表或存储过程,视图脚本,序列等脚本。 3.2、副脚本指必须执行主脚本之后才执行的脚本。换句话说在没执行主键脚本的情况下,副脚本执行之后会回滚事务失败。 3.3、增量脚本指在执行主脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则需要的SQL脚本。 2、减少人工编写SQL脚本出错率问题,完全通过程序检测SQL准确性。 3、帮助开发人员提高SQL编写效率,减少人工编写SQL开发成本问题。 4、帮助开发人员节约时间,同时避免繁琐不必要编写SQL的工作。 二、实现方式与原理 2.1实现方式 1、实现方式分:正向与逆向实现。什么是正向与逆行呢【是否有鸡还是有蛋,先后道理同等】 2、正向方式:首先把设计好数据库表文档,把所有表的字段属性配置到EXCEL或者CSV格式的文件通过JXL/POI技术去读取文件的字段,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 3、逆向方式:首先有数据库表,然后通过ORM持久化技术连接数据库再读取表的字段等属性出来,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 2.2原理 对数据库软件内置核心表或视图查询出来存储用户行为表结构所有属性信息,对此属性结构信息进行分析与组装所需要SQL脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值