zoukankan      html  css  js  c++  java
  • Oracle学习 第23天 Oracle视图、表、SqlServer、excel、csv的互导

    折腾了一晚,就弄了一张表。。。具体情况:远程Oracle上有一张视图,要弄回到公司服务器Oracle变成一张表

    1、PL/SQL的导出

    发现导出按钮灰色,找了一下Oracle客户端目录下的exp.exe没找着,网上下载了一下还是不行

    可能是版本不对,可能是环境没装好,可能是权限不足,总之没法导出

    2、打开服务器上的SqlServer,SELECT * FROM OPENQUERY(xx, 'SELECT * FROM x'),像普通表一样查出来,全选,右键,导出csv

    3、导出的csv只有数据,没有表头(SQL 2005),只能SELECT INTO xx FROM (SELECT * FROM OPENQUERY(xx, 'SELECT * FROM x WHERE ROWNUM = 1')) T

    生成一张表,然后生成建表脚本,拿到oracle去执行,让它报错,报一个改一个,批量替换成oracle的类型(如varchar2之类)

    4、csv是逗号隔开的,要先用excel导入文本,把逗号作为分隔符变成一列一列

    5、excel想导入PL/SQL,Data From TextFile,提示类似版本不对的东西,查了一下,系统是64位,ODBC是32位

    6、要装64位的驱动,说已装了32位office,无法继续。只能先卸载了office,装64位驱动,再装office(仍是原先的)又可以

    7、导入excel,发现原先导出的csv只有数据,没有表头,要在DataToOracle里一列列对应,几十列,对了一半,发现上下错位了一行,终于放弃

    8、既然有表,那就SELECT * FROM xx FOR UPDATE;然后点编辑,复制数据进去

    一开始复制错了,复制那种逗号分隔的源数据,卡死崩溃(也就一万两千行)

    9、选中第一行第一列,复制列分隔的数据,卡死崩溃

    10、选中第一列,复制粘贴,终于可以了,保存时提示NULL不能保存给DATE之类,明明是可空啊

    11、把每列都改成varchar2算了,保存修改列,不成功,因为刚才复制数据还未提交。。。

    12、全变成字符型的列,把数据复制进来,发现有些2-7这种格式,在转excel时变成【2月7号】了。。。转excel时要选文本

    13、再从头弄一次,终于可以了

    14、后来发现,直接SELECT * FROM XX出来的SqlServer结果集里,全选,直接就可以复制,不用转成csv弄来弄去的。

    但这是放在剪切版里的,数据太大不合适,csv或excel比较通用

    虽然绕了很多弯路,也摸索了一些门路,熟悉了套路。

    Oracle的视图要转成表(因为换成另外服务器上,视图就没意义了),但没有权限又不能建表,只能用SqlServer中转

    表结构最好能直接生成,不要弄个建表脚本。因为虽然是视图,终归是其它表的相应字段,也是有类型的

    服务器之间不直接互通,不然也可以SELECT INTO之类的

    Oracle还是要多实践

  • 相关阅读:
    工厂模式--工厂方法模式(Factory Method Pattern)
    工厂模式--简单工厂模式( Simple Factory Pattern )
    blog2.0--Springboot添加redis缓存(注解方式)
    blog2.0--JSR303参数校验+全局异常处理器
    高并发秒杀——SpringBoot集成redis
    SpringBoot报错HHH000206: hibernate.properties not found
    blog2.0--保存博客文章到本地磁盘
    Swagger注解 传参
    设计模式--单例模式
    跳表
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6436079.html
Copyright © 2011-2022 走看看