我遇到一个界面脚本问题,该脚本应该将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/