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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决: java.net.ConnectException: Connection refused: connect

    解决: java.net.ConnectException: Connection refused: connectjava.net.ConnectException:Connectionrefused:connect1.报错如上。2.原因和解决:1)端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭Tomcat服务器,或者重新启动项目。2)使用以下命令检查服务器中允许的最大进程数:ulimit-u。如果将此值设置为较低值,例如1024,则使用以下…

    2022年4月30日
    41
  • qtabbar设置不同宽度_华为最小宽度默认

    qtabbar设置不同宽度_华为最小宽度默认随手记。因为自己搜没搜到。一行代码搞定。我是加在resizeEvent函数中的。ui.tabWidgetCentral->tabBar()->setMaximumWidth(width);修改后效果原效果

    2022年9月23日
    0
  • 秒懂,Java 注解 (Annotation)你可以这样学

    秒懂,Java 注解 (Annotation)你可以这样学文章开头先引入一处图片。这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation中文译过来就是注解、标释的意思,在Java中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来…

    2022年6月10日
    31
  • 计算机编程原理_如何编程

    计算机编程原理_如何编程一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通

    2022年10月17日
    0
  • cstring头文件怎么用_C语言头文件调用

    cstring头文件怎么用_C语言头文件调用在非MFC工程中.就包含atlstr.h在MFC工程中.就包含afx.h-

    2022年9月13日
    0
  • 面试题 垃圾分类_前端垃圾回收机制面试题

    面试题 垃圾分类_前端垃圾回收机制面试题一、垃圾回收对象JVM运行时的数据区包括程序计数器、栈、堆、方法区、本地方法栈其中程序计数器、栈和本地方法栈是和线程绑定在一起的,当创建了线程,就会申请内存,当线程结束的时候,想关的内存就会被销毁。方法区主要是类对象,类加载的时候就会申请这里的内存,“类卸载”操作实际上是很少会涉及到的。因此,垃圾回收机制主要回收的对象就是堆,并且垃圾回收释放内存,实际上是在以对象为单位进行释放,因为内存的申请是以对象为单位进行申请的,当整个对象的内存都不在使用时,即没有引用指向这个对象时,就可以将其进行释放二、垃圾

    2022年10月13日
    0

发表回复

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

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