Oracle - Ausgabe kommt nicht in richtigen Format
Frage
Ich habe die unten Parameter in sqlplus gesetzt meine Sicht auf Unix-Rechner aus, setzte anzuzeigen jedoch ist es eine Zeile Lücke zwischen zwei records.I Anzeige nicht will, dass eine Zeile Lücke zwischen zwei Aufzeichnungen Ex -
set feedback off
SET NEWPAGE NONE
set HEADING Off
set pagesize 0
set linesize 125
SET TRIMSPOOL ON
set termout off
spool /export/home/43276826/Rep_Tran_oracle_$DATE_FILE.txt
select RecordID||','||C_S||','||P_R||','||AccountingDate||','||SettlementDate||','||Sec
Description||','||ISIN||','||MessageRef||','||Amount||','||Department||','||AssignedTo||','||LastUpdate||','||CashAmount||','
||CashAmountUSD||','||LastNoteText||','||LastNoteUser||','||CashCurrency||','||BIMASNumber||','||RelatedReference||','||Sende
rToRec||','||OpType||','||OriginalISIN from HSBC_ALL_OI_T;
201280,C,R,21.4.2009,21.4.2009,"HSBC HLDG","GB0005405286","00001/20090421-1006851",188.00
0000,"TITBB/F"," ",22.4.2009,0.00,,"NOTHING GENEVA","ADK"," ","GB411161","SF-0357690"," ","FR"," "
"201279,C,P,21.4.2009,21.4.2009,"HSBC HLDG","GB0005405286","00001/20090421-1401548",188.00
0000,"TITBB/F"," ",22.4.2009,0.00,,"NOTHING GENEVA","ADK"," ","GB411161","SF-0357689"," ","FD"," "
there is a gap of one line between two records,I don't want that one line gap.I want output in the below format:
201280,C,R,21.4.2009,21.4.2009,"HSBC HLDG","GB0005405286","00001/20090421-1006851",188.00
0000,"TITBB/F"," ",22.4.2009,0.00,,"NOTHING GENEVA","ADK"," ","GB411161","SF-0357690"," ","FR"," "
"201279,C,P,21.4.2009,21.4.2009,"HSBC HLDG","GB0005405286","00001/20090421-1401548",188.00
0000,"TITBB/F"," ",22.4.2009,0.00,,"NOTHING GENEVA","ADK"," ","GB411161","SF-0357689"," ","FD"," "
Bitte helfen Sie mir in der obigen Ausgabe zu erreichen.
Lösung
Ich glaube, Ihr Problem ist, dass Ihr linesize auf 125 gesetzt ist, aber die Ausgabe ist 187 Zeichen (für die erste Zeile sowieso). Wenn sqlplus Ihre Linien hüllt, bringt es den zusätzlichen Platz gibt, damit Sie wissen, wo man eingewickelt Linie endet und das andere beginnt.
Entweder Ihre Linie Größe etwas ändern mehr als 125 (persönlich, habe ich immer linesize bis 5000 in meiner Skripte gesetzt - ich meine eigene Verpackung tun, danke, sqlplus) oder die Ergebnisse durch sed ausführen, um die Lücken zu entfernen:
cat myResultFile.txt | sed '/^$/d' > newResultFile.txt
Andere Tipps
Sie könnten Rekord Trennung eingeschaltet haben:
SET RECSEP EACH
Versuchen:
SET RECSEP OFF