Question

J'ai défini les paramètres ci-dessous dans sqlplus pour afficher mon affichage sous unix. Cependant, il affiche un intervalle de ligne entre deux enregistrements.

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"," "

Aidez-moi à atteindre le résultat ci-dessus.

Était-ce utile?

La solution

Je pense que votre problème est que votre taille de ligne est définie sur 125 mais votre sortie est de 187 caractères (pour la première ligne de toute façon). Lorsque sqlplus encapsule vos lignes, il crée un espace supplémentaire pour vous permettre de savoir où se terminent l’une des lignes enveloppées et l’autre.

Modifiez la taille de votre ligne par une valeur supérieure à 125 (personnellement, j’ai toujours défini une taille de ligne de 5 000 dans mes scripts - je peux faire moi-même le wrapping, merci, sqlplus), ou exécuter les résultats dans sed pour supprimer les espaces:

cat myResultFile.txt | sed '/^$/d' > newResultFile.txt

Autres conseils

La séparation des enregistrements est peut-être activée:

SET RECSEP EACH

Essayez:

SET RECSEP OFF
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top