Oracle 表结构有办法导入 PostgreSQL 吗?或如何快速导出不带数据的表结构? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
elsagong
V2EX    程序员

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

  •  
  •   elsagong 2018-09-03 22:29:59 +08:00 6011 次点击
    这是一个创建于 2662 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    38 条回复    2018-09-06 15:55:27 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       2018-09-03 22:50:20 +08:00
    这俩数据库 ddl 不兼容,别想了
    elsagong
        2
    elsagong  
    OP
       2018-09-03 22:58:53 +08:00
    @liprais 那我可以光把表结构导出来吗?不导数据,想先了解数据库结构,在 PostgreSQL 中建立一模一样的表名和字段,再利用 Django 的 multi-db 来访问 oracle 数据库
    tenwx
        3
    tenwx  
       2018-09-03 23:05:59 +08:00
    wqawd520
        4
    wqawd520  
       2018-09-03 23:19:15 +08:00
    在 plsql 中找到那个表,右键 viewTable 还是什么的,就是打开表结构,最右面有个 viewSql,点击按钮,就会出现表结构语句。修改修改就能用了
    F281M6Dh8DXpD1g2
        5
    F281M6Dh8DXpD1g2  
       2018-09-03 23:55:46 +08:00
    beginor
        6
    beginor  
       2018-09-04 06:23:28 +08:00 via Android
    能连多种数据库的工具基本上都有这功能吧,navicat,database.net
    elsagong
        7
    elsagong  
    OP
       2018-09-04 08:08:22 +08:00 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
       2018-09-04 08:10:13 +08:00 via iPhone
    @wqawd520 可能是我表述不太清楚,我想导 oracle 数据库的表结构,大哥,你让我在 psql 里改什么表
    wtks1
        9
    wtks1  
       2018-09-04 08:27:26 +08:00 via Android
    @elsagong 他的意思是让你在那里看建表语句,然后自己改改再用到新的数据库里
    singerll
        10
    singerll  
       2018-09-04 08:31:15 +08:00 via Android
    etl 工具,就是干这个活的
    oracle128g
        11
    oracle128g  
       2018-09-04 08:40:44 +08:00 via iPhone
    kettle 完美解决您的问题
    bpllzbh
        12
    bpllzbh  
       2018-09-04 08:43:19 +08:00 via iPhone
    好像有个叫 spoon 的工具
    weizhen199
        13
    weizhen199  
       2018-09-04 08:46:25 +08:00
    试试 datax
    elsagong /td>
        14
    elsagong  
    OP
       2018-09-04 08:57:47 +08:00
    天呐,四个人推荐四种方法,有一样重复也好啊!我要凌乱了
    elsagong
        15
    elsagong  
    OP
       2018-09-04 09:15:27 +08:00
    @oracle128g 我下载他们官网的安装包,按照安装步骤来双击 Data Integration,Mac 系统下没有一点反应这个软件是不是下线了
    miniliuke
        16
    miniliuke  
       2018-09-04 09:24:20 +08:00 via Android
    @elsagong spoon 就是 kettle,kettle 图形界面就叫 spoon
    miniliuke
        17
    miniliuke  
       2018-09-04 09:24:59 +08:00 via Android
    @elsagong 还有 kettle 就是一种 etl 工具
    saulshao
        18
    saulshao  
       2018-09-04 09:27:27 +08:00
    我记得 Django 有一个功能,允许你从现有的数据库生成模型文件。
    这个模型文件就是标准的 Python 代码,从这个代码按道理是可以将这个结构生成到 PLSQL 的。
    elsagong
        19
    elsagong  
    OP
       2018-09-04 09:28:15 +08:00 via iPhone
    @wtks1 我有一百多个表,建表语句直接在 SQL developer 表单 view 里的 SQL 就能直接看到,我想一次性全部导出表单结构
    elsagong
        20
    elsagong  
    OP
       2018-09-04 09:28:54 +08:00 via iPhone
    @saulshao 我搜搜看,谢谢你啦
    elsagong
        21
    elsagong  
    OP
       2018-09-04 09:52:37 +08:00
    @miniliuke 明白了,谢谢你,这个软件还是安装不到我的系统里,我不得不搜索其他方法了。。。
    totland
        22
    totland  
       2018-09-04 10:04:53 +08:00
    exp rows=n sqlfile=xx.sql
    miniliuke
        23
    miniliuke  
       2018-09-04 10:30:38 +08:00 via Android
    @elsagong 这个软件不需要安装绿色的.......
    pythonee
        24
    pythonee  
       2018-09-04 10:44:45 +08:00
    迁移服务是个专业性比较强的活
    TommyLemon
        25
    TommyLemon  
       2018-09-04 11:17:46 +08:00
    试试 Navicat,不行的话就写代码吧,读取 Oracle 的表结构,生成 PostgreSQL 的 DDL 并连接 PostgreSQL 数据库来执行
    mingl0280
        26
    mingl0280  
       2018-09-04 11:33:38 +08:00
    Navicat Premium 支持互导,但是会出很多错
    yanzixuan
        27
    yanzixuan  
       2018-09-04 12:46:23 +08:00
    @saulshao 那你得先搞到 oracle 得表结构,sqlacdodegen 了解一下?
    likuku
        28
    likuku  
       2018-09-04 12:56:56 +08:00 via iPhone
    有专业公司提供付费迁移的服务的,以前基于 pg 的 enterprise database 产品和公司 记得就是干这个事
    oracle128g
        29
    oracle128g  
       2018-09-04 13:16:44 +08:00
    elsagong
        30
    elsagong  
    OP
       2018-09-04 13:53:16 +08:00 via iPhone
    @pythonee 目的不是迁移数据库,而是本地程序调用第三方软件 Oracle 中的数据,从而显示 Oracle 中的实时数据。
    elsagong
        31
    elsagong  
    OP
       2018-09-04 14:00:25 +08:00
    @oracle128g @miniliuke 感谢二位,这个软件针对 Mac 系统的安装真的有点奇葩,我就是从官方下载的,按步骤双击文件安装无反应,通过 brew install 安装好了,在终端 /命令行捣鼓了半天,就是无法进入 kettler 输入命令的地方。无论如何,现在已经安装好,在研究怎么导表格了,通过这个文章解决的,竟然要来回拖拽两次到程序目录http://www.page.keyllo.com/mac/linux/2017/05/25/mac-kettle.html
    elsagong
        32
    elsagong  
    OP
       2018-09-04 14:06:19 +08:00
    @yanzixuan 我搜搜,谢谢你啦,@totland 谢谢你,不过 `exp rows=n sqlfile=xx.sql` 这样导应该和手动 export 导出一样吧?是带了表中数据的,总共 17.6GB ,我的小本本还没导到天荒地老,恐怕电脑就挂不行哦 @mingl0280 @TommyLemon 感谢对于 Navicat 的建议,我安装好了 kettle,先研究这个方法了,虽然官方文档不太友好
    oracle128g
        33
    oracle128g  
       2018-09-04 15:26:36 +08:00 via iPhone
    @elsagong 在软件菜单栏工具选项中有个叫向导的东西,里面官方提供了单表和多表复制向导,你可以试试,不过得先创建好 2 个数据库连接这个选项才是 enabled
    elsagong
        34
    elsagong  
    OP
       2018-09-04 17:52:06 +08:00 via iPhone
    @oracle128g 嗯嗯,下午一直在导,谢谢你哦,就是有几个表导入失败,就跳过导其他了,你知道怎么导入不带数据的表结构吗?原数据太多,我想只导表和字段就好
    iwiki
        35
    iwiki  
       2018-09-04 21:48:55 +08:00
    navicat 试试
    fyourm
        36
    fyourm  
       2018-09-05 09:01:19 +08:00
    navicat 有一个数据同步功能,我的项目里有个定时任务,每天从 PostgreSQL 里同步一张表的数据到 oracle,反过来没有试过
    elsagong
        37
    elsagong  
    OP
       2018-09-06 10:04:06 +08:00 via iPhone
    @fyourm 嗨,咨询一下你,两个数据库的数据同步,是不是表名和字段设置全部要一模一样
    elsagong
        38
    elsagong  
    OP
       2018-09-06 15:55:27 +08:00 via iPhone
    @oracle128g 嗨,外键等关系是不是没有办法导过来?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3466 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 05:05 PVG 13:05 LAX 21:05 JFK 00:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86