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还是要多实践

  • 相关阅读:
    DB2错误代码
    Hbase配置中出现的问题总结
    自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法
    关于CoordinatorLayout与Behavior的一点分析
    Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡...)
    android之官方下拉刷新组件SwipeRefreshLayout
    Android改变图片颜色的自定义控件
    android 之修改图片的某一颜色值
    Android动态修改图片颜色的实现方式分析
    Android WebView常见问题及解决方案汇总
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6436079.html
Copyright © 2011-2022 走看看