V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
elsagong
V2EX  ›  程序员

Oracle 表结构有办法导入 PostgreSQL 吗?或如何快速导出不带数据的表结构?

  •  
  •   elsagong · Sep 3, 2018 · 6267 views
    This topic created in 2798 days ago, the information mentioned may be changed or developed.

    大家晚上好,咨询下数据库大神:Oracle 数据库有办法将表结构导入 PostgreSQL 吗?才接触 oracle,一头雾水。

    目的不是迁移数据库,而是本地程序调用第三方软件 Oracle 中的数据,从而显示 Oracle 中的实时数据。

    如果不能直接导表结构到 PostgreSQL,如何才能快速导出不带数据的表结构?上百个表单,17GB 多的数据。。。先提前感谢了~💐🍻

    38 replies    2018-09-06 15:55:27 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Sep 3, 2018
    这俩数据库 ddl 不兼容,别想了
    elsagong
        2
    elsagong  
    OP
       Sep 3, 2018
    @liprais 那我可以光把表结构导出来吗?不导数据,想先了解数据库结构,在 PostgreSQL 中建立一模一样的表名和字段,再利用 Django 的 multi-db 来访问 oracle 数据库
    tenwx
        3
    tenwx  
       Sep 3, 2018
    wqawd520
        4
    wqawd520  
       Sep 3, 2018
    在 plsql 中找到那个表,右键 viewTable 还是什么的,就是打开表结构,最右面有个 viewSql,点击按钮,就会出现表结构语句。修改修改就能用了
    F281M6Dh8DXpD1g2
        5
    F281M6Dh8DXpD1g2  
       Sep 3, 2018
    beginor
        6
    beginor  
       Sep 4, 2018 via Android
    能连多种数据库的工具基本上都有这功能吧,navicat,database.net
    elsagong
        7
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @liprais 真的尝试搜索了很多了,可能是搜索的关键词不对?感谢你发我链接,我注意到有句“ Depending on the tool you are using, you may need to run set long 10000 first, that tells SQL*Plus to display the first 10,000 bytes of any LOB that is selected. If your DDL is longer, set a larger value.” 我有 17.6GB 的数据,岂不是要执行 set long 176000000..bytes ?我看到里面讲述的是显示表单里的的所有行吗?没有看到有导出的 SQL 语句。。。
    elsagong
        8
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @wqawd520 可能是我表述不太清楚,我想导 oracle 数据库的表结构,大哥,你让我在 psql 里改什么表😂
    wtks1
        9
    wtks1  
       Sep 4, 2018 via Android
    @elsagong 他的意思是让你在那里看建表语句,然后自己改改再用到新的数据库里
    singerll
        10
    singerll  
       Sep 4, 2018 via Android
    etl 工具,就是干这个活的
    oracle128g
        11
    oracle128g  
       Sep 4, 2018 via iPhone
    kettle 完美解决您的问题
    bpllzbh
        12
    bpllzbh  
       Sep 4, 2018 via iPhone
    好像有个叫 spoon 的工具
    weizhen199
        13
    weizhen199  
       Sep 4, 2018
    试试 datax
    elsagong
        14
    elsagong  
    OP
       Sep 4, 2018
    天呐,四个人推荐四种方法,有一样重复也好啊!我要凌乱了
    elsagong
        15
    elsagong  
    OP
       Sep 4, 2018
    @oracle128g 我下载他们官网的安装包,按照安装步骤来双击 Data Integration,Mac 系统下没有一点反应😂这个软件是不是下线了😂
    miniliuke
        16
    miniliuke  
       Sep 4, 2018 via Android
    @elsagong spoon 就是 kettle,kettle 图形界面就叫 spoon
    miniliuke
        17
    miniliuke  
       Sep 4, 2018 via Android
    @elsagong 还有 kettle 就是一种 etl 工具
    saulshao
        18
    saulshao  
       Sep 4, 2018
    我记得 Django 有一个功能,允许你从现有的数据库生成模型文件。
    这个模型文件就是标准的 Python 代码,从这个代码按道理是可以将这个结构生成到 PLSQL 的。
    elsagong
        19
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @wtks1 我有一百多个表,建表语句直接在 SQL developer 表单 view 里的 SQL 就能直接看到,我想一次性全部导出表单结构
    elsagong
        20
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @saulshao 我搜搜看,谢谢你啦
    elsagong
        21
    elsagong  
    OP
       Sep 4, 2018
    @miniliuke 明白了,谢谢你,这个软件还是安装不到我的系统里,我不得不搜索其他方法了。。。
    totland
        22
    totland  
       Sep 4, 2018
    exp rows=n sqlfile=xx.sql
    miniliuke
        23
    miniliuke  
       Sep 4, 2018 via Android
    @elsagong 这个软件不需要安装绿色的.......
    pythonee
        24
    pythonee  
       Sep 4, 2018
    迁移服务是个专业性比较强的活
    TommyLemon
        25
    TommyLemon  
       Sep 4, 2018
    试试 Navicat,不行的话就写代码吧,读取 Oracle 的表结构,生成 PostgreSQL 的 DDL 并连接 PostgreSQL 数据库来执行
    mingl0280
        26
    mingl0280  
       Sep 4, 2018
    Navicat Premium 支持互导,但是会出很多错
    yanzixuan
        27
    yanzixuan  
       Sep 4, 2018
    @saulshao 那你得先搞到 oracle 得表结构,sqlacdodegen 了解一下?
    likuku
        28
    likuku  
       Sep 4, 2018 via iPhone
    有专业公司提供付费迁移的服务的,以前基于 pg 的 enterprise database 产品和公司 记得就是干这个事
    elsagong
        30
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @pythonee 目的不是迁移数据库,而是本地程序调用第三方软件 Oracle 中的数据,从而显示 Oracle 中的实时数据。
    elsagong
        31
    elsagong  
    OP
       Sep 4, 2018
    @oracle128g @miniliuke 感谢二位,这个软件针对 Mac 系统的安装真的有点奇葩,我就是从官方下载的,按步骤双击文件安装无反应,通过 brew install 安装好了,在终端 /命令行捣鼓了半天,就是无法进入 kettler 输入命令的地方。无论如何,现在已经安装好,在研究怎么导表格了,通过这个文章解决的,竟然要来回拖拽两次到程序目录😂http://www.page.keyllo.com/mac/linux/2017/05/25/mac-kettle.html
    elsagong
        32
    elsagong  
    OP
       Sep 4, 2018
    @yanzixuan 我搜搜,谢谢你啦,@totland 谢谢你,不过 `exp rows=n sqlfile=xx.sql` 这样导应该和手动 export 导出一样吧?是带了表中数据的,总共 17.6GB ,我的小本本还没导到天荒地老,恐怕电脑就挂😂不行哦 @mingl0280 @TommyLemon 感谢对于 Navicat 的建议,我安装好了 kettle,先研究这个方法了,虽然官方文档不太友好😑
    oracle128g
        33
    oracle128g  
       Sep 4, 2018 via iPhone
    @elsagong 在软件菜单栏工具选项中有个叫向导的东西,里面官方提供了单表和多表复制向导,你可以试试,不过得先创建好 2 个数据库连接这个选项才是 enabled
    elsagong
        34
    elsagong  
    OP
       Sep 4, 2018 via iPhone
    @oracle128g 嗯嗯,下午一直在导,谢谢你哦,就是有几个表导入失败,就跳过导其他了,你知道怎么导入不带数据的表结构吗?原数据太多,我想只导表和字段就好
    iwiki
        35
    iwiki  
       Sep 4, 2018
    navicat 试试
    fyourm
        36
    fyourm  
       Sep 5, 2018
    navicat 有一个数据同步功能,我的项目里有个定时任务,每天从 PostgreSQL 里同步一张表的数据到 oracle,反过来没有试过
    elsagong
        37
    elsagong  
    OP
       Sep 6, 2018 via iPhone
    @fyourm 嗨,咨询一下你,两个数据库的数据同步,是不是表名和字段设置全部要一模一样
    elsagong
        38
    elsagong  
    OP
       Sep 6, 2018 via iPhone
    @oracle128g 嗨,外键等关系是不是没有办法导过来?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   780 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 20:39 · PVG 04:39 · LAX 13:39 · JFK 16:39
    ♥ Do have faith in what you're doing.