oracle - SQLPlus导出到CSV(输出格式问题)

标签 oracle csv sqlplus export-to-csv

我遇到了一个接口(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/

相关文章:

java - Oracle JDBC 欧元字符

c++ - Oracle Golden Gate 用户导出 - EXIT_CALL_PROCESS_RECORD 未通过

python - 如何将数据框导出到现有的格式化 csv 文件?

linux - sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录

oracle - 使用 UTF-8 编码从 Oracle 数据库假脱机文件时的编码问题

database - 无法在 SysAux 中恢复损坏的 Oracle 数据文件 block

oracle - HikariCP:为 Oracle 11g 设置 maxLifetime 时应考虑哪些数据库级别超时

excel - 没有指数数字的 CSV 文件创建

java - 使用 opencsv (java) 读取 .csv 文件时跳过空行

linux - 加载共享库时出错 : libsqlplus. 所以:无法打开共享对象文件:没有这样的文件或目录