在sqlplus中假脱机时行和列被截断

时间:2019-07-03 08:48:42

标签: oracle oracle11g export-to-csv sqlplus spool

*我正在使用sqlplus将一些数据从oracle数据库假脱机到CSV文件,我的结果表有44列和7000多行,但是当它假脱机到csv时,它在excel(索引A到Z)中也只显示26列一些行被截断。我希望所有列都应打印在一行中。 我尝试增加'linesize',但最大值为32767,所以它也不起作用,我也尝试了'wrap on',但是下一行的26th(Excel中的Z)索引之后的列。

SET echo off
set embedded on
SET linesize 32767
SET LONG 90000 
SET LONGCHUNKSIZE 90000 
SET wrap off
SET heading off
SET pagesize 1000;
SET feed off;
SET colsep ',' 
SET termout off;
set trimout on;
SET trimspool ON; 
SELECT * FROM ix_web_user;
spool results.csv append;
SET newpage none;
/
spool off

我希望所有列都应打印在一行中,并且行不应被截断。*

1 个答案:

答案 0 :(得分:0)

您可以导出具有不同列的多个csv文件,但是每个文件中的一列必须是唯一的行标识符。 例如,第一个文件包含22列,第二个文件具有23列。 一个简单的脚本按标识符连接行,结果是最终文件有44列,行长超过32768。

file1.csv

id,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,col15,col16,col17,col18,col19,col20,col21,col22,col23,col24,col25,col26,col27,col28,col29,col30,col31,col32,col33,col34,col35,col36,col37,col38,col39,col40,col41,col42,col43
joe,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2411111111111111111111111111111111111111111111111111111111111
sam,21,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,451111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
mary,31,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,30111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

file2.csv

id,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,col15,col16,col17,col18,col19,col20,col21
joe,33311111111111111111111111111111111111111111111111111111111111111111111111111111111111,33311111111111111111111111111111111111111111111111111111111111111111111111111111111111
mary,5551111111111111111111111111111111111111111111111111111111111111111111111111111111111,5551111111111111111111111111111111111111111111111111111111111111111111111111111111111
sam,44411111111111111111111111111111111111111111111111111111111111111111111111111111111111,44411111111111111111111111111111111111111111111111111111111111111111111111111111111111

文件merge.ps1

$file1=(import-csv file1.csv -header id,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,
                                     col11,col12,col13,col14,col15,col16,col17,col18,col19,col20,
                                     col21,col22,col23,col24,col25,col26,col27,col28,col29,col30,
                                     col31,col32,col33,col34,col35,col36,col37,col38,col39,col40,
                                     col41,col42,col43)[1..9999]
$file2=(import-csv file2.csv -header id,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,
                                     col11,col12,col13,col14,col15,col16,col17,col18,col19,col20,
                                     col21)[1..9999]
$file1|
   %{
      $id=$_.id
      $m=$file2|?{$_.id -eq $id}
      $_.col23=$m.col1
      $_.col24=$m.col2
      $_.col25=$m.col3
      $_.col26=$m.col4
      $_.col27=$m.col5
      $_.col28=$m.col6
      $_.col29=$m.col7
      $_.col30=$m.col8
      $_.col31=$m.col9
      $_.col32=$m.col10
      $_.col33=$m.col11
      $_.col34=$m.col12
      $_.col35=$m.col13
      $_.col36=$m.col14
      $_.col37=$m.col15
      $_.col38=$m.col16
      $_.col39=$m.col17
      $_.col40=$m.col18
      $_.col41=$m.col19
      $_.col42=$m.col20
      $_.col43=$m.col21

    }
$file1|Export-Csv "file3.csv" -NoTypeInformation

输出file3.csv

"id","col1","col2","col3","col4","col5","col6","col7","col8","col9","col10","col11","col12","col13","col14","col15","col16","col17","col18","col19","col20","col21","col22","col23","col24","col25","col26","col27","col28","col29","col30","col31","col32","col33","col34","col35","col36","col37","col38","col39","col40","col41","col42","col43"
"joe","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","2411111111111111111111111111111111111111111111111111111111111",,"33311111111111111111111111111111111111111111111111111111111111111111111111111111111111","33311111111111111111111111111111111111111111111111111111111111111111111111111111111111",,,,,,,,,,,,,,,,,,,
"sam","21","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","451111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",,"44411111111111111111111111111111111111111111111111111111111111111111111111111111111111","44411111111111111111111111111111111111111111111111111111111111111111111111111111111111",,,,,,,,,,,,,,,,,,,
"mary","31","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","30111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",,"5551111111111111111111111111111111111111111111111111111111111111111111111111111111111","5551111111111111111111111111111111111111111111111111111111111111111111111111111111111",,,,,,,,,,,,,,,,,,,