powerdesigner导入sql生成表_oracle导入sql

powerdesigner导入sql生成表_oracle导入sql在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL问题,非常影响我们建表的效率。本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。1、以oracle_to_student(学生表)为例,Oracle数据库中建表语句如下所示。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

      在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们建表的效率。本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。
 

1、以 oracle_to_student(学生表)为例,Oracle数据库中建表语句如下所示。需要注意的是,若要相对完美的将Oracle数据库表转换成Mysql数据库表,需要严格按照以下Oracle数据库表结构方式,标点符号都不能多、不能少。

 

     1.1、表名、字段名,需要去除 ` 符号  ;

     1.2、若字段定义过程中缺少 ‘NOT NULL’、 ‘DEFAULT NULL’, 请添加 ;

     1.3、若Oracle表中含主键,需要添加命令设置主键。
 

-- 使用PowerDesigner将Oracle建表语句转换成Mysql建表语句。
create table oracle_to_student
(
  
  stu_id       NUMBER(16)      NOT NULL,
  stu_name     VARCHAR2(32)    NOT NULL,
  stu_tuition  NUMBER(9, 2)    NOT NULL,
  stu_address  VARCHAR2(500)   DEFAULT NULL,
  stu_age      NUMBER(3) 	   DEFAULT NULL,
  create_date  DATE 		   DEFAULT NULL
)
tablespace STT_TBS_DATA
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 1
    next 1
    minextents 1
    maxextents unlimited
  );

comment on table oracle_to_student
  is '学生表';

-- 新增语句
alter table oracle_to_student add constraint pk_student001 primary key(stu_id);
  

comment on column oracle_to_student.stu_id
  is '学生编码';
  
comment on column oracle_to_student.stu_name
  is '学生姓名';

comment on column oracle_to_student.stu_tuition
  is '学费';
  
comment on column oracle_to_student.stu_address
  is '学生地址';

comment on column oracle_to_student.stu_address
  is '学生年龄';  
  
comment on column oracle_to_student.create_date
  is '创建时间';

 

2、 打开 PowerDesigner 软件, 选择 文件 —> 反向工程 —> Database ,如下图1所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图1

 

3、 之后,会弹出 New Physical Date Model 窗口。 在该窗口 “常规” 选项界面, 由于我们是将Oracle数据库中表转成Mysql数据库中表,所以 “DBMS” 行选择 “ORACLE Version 11g” 选项,如图2所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图2

 

4、之后,会弹出 “Database Reverse Engineering Options” 窗口, 在该窗口点击 “Add Files (Ctrl + N)” 图标,选择Mysql数据库student表sql脚本,如图3、 图4所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图3

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图4

 

5、由步骤4操作后,PowerDesigner 软件界面如下图5所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图5

 

6、在 PowerDesigner 软件上,选择 “数据库” —> “Change Current DBMS…” 选项,如下图6所示。 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图6

 

7、之后,会弹出 “Change DBMS” 窗口。 由于我们是将Oracle数据库表转化成Mysql数据库表,在这里 “New 数据库管” 一行选择 “MySQL 5.0” 。 “Current 数据库管” 一栏,会随着这一步操作完成后,自动更改成 “MySQL 5.0” ,如下图7、图8所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图7

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图8

 

8、使用快捷键: Ctrl + G,调用出 “Database Generation” 窗口,选择生成Mysql建表语句文件的路径,并对文件进行命名,如下图9所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图9

 

9、之后,会弹出 “Generated Files” 窗口,由log日志、生成的sql脚本文件可知,程序运行成功。点击 “Generated Files” 窗口中的 “关闭(C)” 按钮后,会弹出 “结果列表” 窗口,该窗口无实际意义,直接关闭。 如下图10、图11所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图10

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图11

 

10、由Oracle建表语句中文字段含义可知,stu_id、stu_age 这2个字段为普通数字数据类型字段,stu_tuition 字段为金额数据类型字段,需保留2位小数。经过PowerDesigner软件生成后的Mysql建表语句,这3个字段的数据类型并非是我们需要的数据类型,因此需要更改。

 

        将  stu_id numeric(16, 0)  更改为 stu_id bigint(16) ;  将 stu_age numeric(3, 0) 更改为 stu_age int(3);  将 stu_tuition numeric(9, 2) 更改为 stu_tuition decimal(9, 2) 。 如下图12、 图13 所示。

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图12

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图13

 

11、经过上述处理之后,SQL脚本即可放到Navicat软件中直接运行使用。 图14、图15是效果展示图。

Oracle数据库表转成Mysql数据库表的SQL语句如下所示:

/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2020/3/12 9:34:59                            */
/*==============================================================*/


drop table if exists ORACLE_TO_STUDENT;

/*==============================================================*/
/* Table: ORACLE_TO_STUDENT                                     */
/*==============================================================*/
create table ORACLE_TO_STUDENT
(
   STU_ID               bigint(16) not null comment '学生编码',
   STU_NAME             varchar(32) not null comment '学生姓名',
   STU_TUITION          decimal(9,2) not null comment '学费',
   STU_ADDRESS          varchar(500) default NULL comment '学生年龄',
   STU_AGE              int(3) default NULL,
   CREATE_DATE          datetime default NULL comment '创建时间',
   primary key (STU_ID)
);

alter table ORACLE_TO_STUDENT comment '学生表';

 

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图14

 

powerdesigner导入sql生成表_oracle导入sql

                                                                                  图15

 

 

参考文章:  PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。    

 

姊妹篇文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。     

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195934.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cmd跑绿色代码_cmd装逼代码-cmd命令,装逼

    cmd跑绿色代码_cmd装逼代码-cmd命令,装逼本教程分享:《cmd装逼代码》如何使用命令提示符装逼事先声明,如果你不知道打开windows的命令行工具,我是绝对不会告诉你是用windows+R,然后键入cmd打开的windows自带的命令行工具很强大,毕竟计算机一开始都是以键入命令的方式来操作的,但现如今计算机的发展,许多在过去需要去记大量命令才能完成的操作,现如今通过傻瓜式的点选都可以完成。作为一名有逼格的程序员,在计算机如今图形界面…

    2022年6月5日
    56
  • linux下svn配置http访问「建议收藏」

    linux下svn配置http访问「建议收藏」CentOS服务器部署svn+apachehttp+sslhttps访问,本文详细介绍了svn配置apachehttp访问安装及配置过程。

    2025年11月3日
    3
  • SimpleDateFormat 常用用法[通俗易懂]

    SimpleDateFormat 常用用法[通俗易懂]1、SimpleDateFormat函数语法:G年代标志符y年M月d日h时在上午或下午(1~12)H时在一天中(0~23)m分s秒S毫秒E星期D一年

    2022年7月3日
    27
  • java可视化编程-eclipse安装windowbuilder插件「建议收藏」

    一直做在安卓用xml作界面,对于java的控件不熟悉,也不习惯用代码做UI尤其是布局。找了一下发现可以安装windowbuilder来实现java的可视化编程,但是很多资料里的连接都失效了。刚自己弄完比较熟悉,总结一下希望能帮到。我是直接在线安装的windowbuilder一.找到对应版本的windowbuilder打开这个链接:http://www.eclipse.org/w

    2022年3月11日
    45
  • java集合系列——List集合总结(六)

    List继承了Collection,是有序的列表。实现类有ArrayList、LinkedList、Vector、Stack等 ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量!LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使用!Vector是基于数组实现的,是一个矢量队列,是线程安全的!Stack是基于数组实现的,是栈

    2022年2月26日
    58
  • 轻松解析excel文件 —-利用MFC读取excel文件

    轻松解析excel文件 —-利用MFC读取excel文件在项目中需要解析excel文件,尝试了很多办法,最后还是利用MFC自带的解析Excel类。网上的资源很多,前面添加类步骤基本差不多,都能成功,但是在自己写类进行封装的时候,抄袭现象很明显,很多错误还是接着一字不差的发上来。最后找了一个错误不是很多的,自己修改封装,先附上一个demo。(1)在Button控件下添加以下代码用于选取需要读取的文件stringpath; path=CT…

    2022年6月28日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号