我有一个脚本,通过命令行将数据(包括CLOB)从Oracle SQL导出到CSV . 当我执行脚本然后通过Python查看数据时,我获得每行的正确列数以及正确的数据 . 但是,每个单元格中都有额外的空格 . 我的方法:
file.sql :
spool "/home/username/file.csv";
SELECT /*csv*/ '"'||COLUMN_1||'"',
'"'||COLUMN_2||'"',
'"'||DBMS_LOB.substr(COLUMN_3,3000)||'"',
...
'"'||COLUMN_N||'"'
FROM TABLE;
spool off;
file.sh :
export ORACLE_SID=MYSID
sqlplus / as sysdba <
conn myUser/myPass
set heading off
set termout off
set trimout off
set newpage none
set pages 0
set feedback off
set echo off
set verify off
set trimspool on
set sqlprompt ""
set colsep ","
set linesize 32767
@/home/username/file.sql
exit
EOF
当我尝试通过连接修剪空间时,整个事物就会崩溃(不相等的列长度,应该没有的断点,等等):
Modified file.sql :
spool "/home/username/file.csv";
SELECT /*csv*/ '"'||COLUMN_1||'"'||','
'"'||COLUMN_2||'"'||','
'"'||DBMS_LOB.substr(COLUMN_3,3000)||'"'||','
...
'"'||COLUMN_N||'"'
FROM TABLE;
spool off;
我在这做错了什么?我还尝试了一些其他的连接方法,比如使用 ||'","'|| ,但这似乎也没有用 .