datagrip 导出 Oracle 数据库结构和数据到sql脚本中

文章目录

  • 1. 问题描述
  • 2. 数据库右键 -- 仅对 MySQL 和 PostgreSQL 有效
    • 1. MySQL 备份 -- mysqldump
    • 2. PostgreSQL 备份 -- pgdump
  • 3. Oracle备份/导出
    • 1. 数据库定义(结构)的导出 -- SQL generator
      • 1. 此工具打开方法
      • 2. 工具的选项和配置
      • 3. 生成操作
      • 4. 生成结果
    • 2. 数据库内容的导出
  • 3. 对比 Navicat

1. 问题描述

想导出 Oracle 数据库到单独的 sql 文件中,查看网上很多教程,几乎都是 MySQL 和 PostgreSQL 的导出,上官网查询帮助,找到相关功能。
目前自己找不到能实现单个 sql 文件导出的,只能实现 数据库结构、数据库内容单独生成两份 sql

2. 数据库右键 – 仅对 MySQL 和 PostgreSQL 有效

在 MySQL 和 PostgreSQL 数据库,右键,有 “demp XXX” 相关选项。但这个其实是利用两个数据库官方提供的数据库备份工具 mysqldump 和 pgdump 来实现的,导入需要使用 mysql 和 pgsql 程序来实现。
这里的操作其实是用datagrip快捷调用这两个官方备份工具。
而 Oracle 没有类似的工具,因此不能直接右键导出

因此,如果系统没装 mysqldump / pgdump,就没法使用这两种功能来导出 mysql / postgresql 数据库了

1. MySQL 备份 – mysqldump

参考网址:http://t.csdn.cn/ktZi9

datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第1张图片

2. PostgreSQL 备份 – pgdump

参考网址:http://t.csdn.cn/7Wm3Q

3. Oracle备份/导出

其他数据库导出相对来说比较麻烦,需要分开导出:

  1. 导出数据库结构和定义 – 使用 SQL generator 实现
  2. 导出对应表 – 选中对应表,右键选中 Import/Export --> Export to files
    这里导出到对应表不能集中导出到一份 sql 脚本中,远啦数据库中的每张表都会独立导出一个 sql 文件,里面记录着对应表的数据

1. 数据库定义(结构)的导出 – SQL generator

数据库右键 – SQL Script – SQL generator –
SQL generator从名称可以看出是专门生成 SQL 脚本的工具,这个工具用于生成与表结构有关的部分 SQL 脚本
datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第2张图片

1. 此工具打开方法

  1. 选中要导出的数据库,右键
  2. 在弹出的菜单中选择SQL Script --> SQL Generator

2. 工具的选项和配置

  1. 配置选项
    datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第3张图片

    1. 要生成什么脚本
      常用的选项如下:图中有一些翻译不太对,以下面的文字为准
      datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第4张图片
      1. Create script completely所有内容全部新建
        用于数据库备份、将数据库完全导入其他电脑中
      2. Definitions provided by RDBMS server数据库中的所有定义
        生成的 sql 脚本只包含定义 (数据库结构,DDL语言),不包含各个表中的数据
      3. Truncate table清空所有表中的内容,但仍保留表
      4. Drop object删除所有定义的东西 (包括视图、存储过程、数据表、函数等)
    2. 常用的选项
      1. use CREATE OR REPLACE syntex 使用 CREATE OR REPLACE 语法。
        通常用于生成用于强制修改的脚本,不论原来数据库是否已经存在对应的数据,都全部覆盖重新生成
      2. use VARCHAR instead of VARCHAR2 字符串变量使用 VARCHAR 类型而不是 VARCHAR2 类型。
        若要考虑导入其他数据库(非Oracle的数据库),可勾选。
        两者的区别参考网页:https://www.cnblogs.com/anningkang/p/oracle.html
      3. use semicolon as staments delimiter 使用分号作为 sql 脚本每个语句的间隔符。
        通常勾选,SQL标准中通常以分号作结尾
      4. reformat generated code 美化生成的 sql 代码。建议勾选
  2. 保存选项
    datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第5张图片

    1. 生成单个 sql 脚本:这个界面不用点开,直接点右边三个按键,中间的就是导出为单个文件,在点击后的弹窗中选导出文件的名、路径、格式即可 (sql 脚本指定格式为 .sql 即可)
    2. 根据分类导出多个 sql 脚本:左侧设置导出路径、分类导出选项

3. 生成操作

datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第6张图片

  1. 配置选项进行如图的配置
  2. 点击右键弹出保存界面,保持生成的脚本

4. 生成结果

生成结果中包含了

2. 数据库内容的导出

datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第7张图片

  1. 选中要导出的数据表
  2. 在弹出的菜单中,选中 Import/Export --> Export to file
  3. 在弹窗中,输出格式选择SQL Insert
    datagrip 导出 Oracle 数据库结构和数据到sql脚本中_第8张图片

3. 对比 Navicat

  1. Navicat 能将 数据库结构 + 数据库内容 全部塞到同一个 sql 脚本中,相比之下 Datagrip 就没有这么方便了,需要分别导出表结构和表数据
  2. Datagrip 导出的表数据很多,有几张表就导出几个对应的 sql 文件,并且文件总量还远超 Navicat 的单个文件
  3. 总结:数据库整体导出到 sql 脚本的功能, Datagrip 还有很大不足需要加强

你可能感兴趣的:(基础设施,数据库,oracle,sql)