我遇到了一个接口(interface)脚本的问题,该脚本应该将 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 文件,但格式似乎不正确,因为我可以在输出中找到一些回车符。 此外,您还会在第 2 步中看到,我们定义了一个“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/