我遇到一个界面脚本问题,该脚本应该将ORACLE数据库的某些表的内容导出到CSV文件中,然后再将这些CSV导入MYSQL数据库中。

步骤1:SQLPlus导出到CSV

set headsep off
set heading off
set term off
set echo off
SET  RECSEPCHAR \n
set pagesize 0
set linesize 0
trimspool on
SET FEEDBACK OFF
spool as_ex_feature.csv
select '"AS'||'"|"'||feature_group||'"|"'||feature_desc||'"|"
    ||feature_order||'"|"'||prod_code||'"'
from MYVIEW WHERE MYCONDITIONS;
spool off;


->此步骤正在生成CSV文件,但是格式似乎不正确,因为我可以在输出中找到一些回车符。
您还将在STEP2中看到我们定义了一个“ ENCLOSED BY”值,我该如何将其包含在导出格式中(目前似乎不是这种情况)。

步骤2:MYSQL载入

LOAD DATA INFILE 'mycsvfile' REPLACE INTO TABLE `mt_feature`
FIELDS TERMINATED BY '|'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';


由于某些技术原因,必须重新构建此脚本,并且Mysql部分尚未更改,并且可以与适当的CSV文件一起正常工作。

问题似乎来自该SQLPlus导出,我需要承认我对此并不了解。也许我应该使用另一种方法来生成那些文件?

如果您需要其他详细信息,请告诉我,我感到盲目...



在oracle 10g,Linux,Mysql 4.x上运行的脚本

谢谢!

最佳答案

SET LINESIZE 0无效,该值必须在1到32767之间。因此,我想它将内容包装在默认行长(即80)中,除非您已经在glogin脚本中设置了它。

关于oracle - SQLPlus导出为CSV(输出格式问题),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4826681/

10-14 14:01
查看更多