我试图产生的shell脚本CSV文件了甲骨文SQLPLUS的,我得到头反复多次,也为空值在该行的末尾到来,如何生成sqlplus到csv文件?
echo "****************************************************************"
echo "Started may at : " $(date +"%r")
sqlplus -s ETLUSER/[email protected]//10.135.23.232:1521/ODS<<EOF >/dev/null
SPOOL wfa_may.csv
SELECT MAC_ADDRESS ||','||
CRM_BP_ID || ',' ||
EVENT_TIMESTAMP || ',' ||
ACCT_INPUT_OCTETS || ',' ||
ACCT_OUTPUT_OCTETS || ',' ||
ACCT_INPUT_PACKETS || ',' ||
ACCT_OUTPUT_PACKETS || ',' ||
ACCT_SESSION_TIME || ',' ||
NAS_IDENTIFIER || ',' ||
EXTRACTION_DATE || ',' ||
RECORD_DATE || ',' ||
LAST_MODIFIED_DATE || ',' ||
ETL_BATCH_ID || ',' ||
ETL_PROCESS_ID || ',' ||
RECORD_LOAD_TIMESTAMP FROM DBAS.S_WFA_ACCOUNTING_MSG where to_char(EVENT_TIMESTAMP,'MON') = 'MAY';
exit
EOF
echo "Ended may at : " $(date +"%r")
echo "****************************************************************"
从NAS_IDENTIFIER我不能够找到文件中显示的任何值。
任何人都可以帮助我怎么了吗?
是否有其他列字符串中可能有逗号?他们不太可能从名字中得知,但可能会抛弃CSV。 (稍微好奇你为什么要假脱机,而不是将输出重定向到一个文件,而不是/ dev/null;但这并不是真正相关的,而且你知道你可以将你的select分成多行,以使它更易读,对吗?) – 2014-09-24 09:48:25
标题是重复和换行符?设置TERMOUT关 组反馈关闭 组头 组验证过 组回波关闭 集LINESIZE 30000 集页面大小0 集trimspool在将这些帮助? – 2014-09-24 10:13:03
['set pageize 0'将压制所有头文件](http://stackoverflow.com/a/22738117/266304),而不仅仅是重复的;你可以设置一个很大的数字来只看到一次。或者[创建你自己的](http://stackoverflow.com/a/23376028/266304)。您可能需要设置'linesize' - 编辑后我不确定您看到的是什么,例如如果数据包装到多行中,或者被截断。显示一些当前输出和来自表格的相应值可能会阐明。 – 2014-09-24 10:15:51