oracle - 在 sqlplus 中假脱机时截断行和列
问题描述
*我正在使用 sqlplus 将 oracle 数据库中的一些数据假脱机到 CSV 文件,我的结果表有 44 列和 7000 多行,但是当它假脱机到 csv 时,它在 excel 中仅显示 26 列(索引 A 到 Z)也有些行是截断。我希望所有列都应该打印在一行中。我试过增加'linesize',但最大值是32767,所以它也不起作用我也试过'wrap on',但第26(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
我希望所有列都应打印在一行中,并且行不应被截断。*
解决方案
您可以导出多个具有不同列的 csv 文件,但每个文件中的一列必须是唯一的行标识符。例如,第一个文件包含 22 列,第二个文件包含 23 列。一个简单的脚本通过标识符连接行,结果是一个包含 44 列和超过 32768 行长度的最终文件。
文件 1.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
文件2.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
文件合并.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
输出文件3.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",,,,,,,,,,,,,,,,,,,
推荐阅读
- cordova-plugins - 如何将本地图像添加到 pdf 生成器文件 cordova-plugin-pdf?
- python - 您如何将 stings 列表拆分为具有大小块的不均匀列表?
- sip - Kazoo/Freeswitch 来自受限号码的桥接呼叫,如何关闭 sip 隐私
- javascript - 只允许数字和字母输入字符串
- c# - 为什么 EF Core 2.2 总是更新“AspNetUsers”表中的“ConcurrencyStamp”、“PasswordHash”?
- javascript - 将 JSON 提供给客户端,不同的项目结构
- amazon-web-services - 如何将 pem 文件和其他机密传递给 AWS CodeBuild?
- javascript - 虽然循环不是随机生成数据
- fonts - 无法弄清楚这些谷歌网络字体来自哪里
- webpack - 在 Rails 6 中使用 Stimulus 和 webpacker 的 Select2