Problems With Data Alignment when spooling to a CSV file
525708Aug 9 2007 — edited Aug 9 2007Dear members,
I am spooling data to a csv file. My data contains 3 columns
For example :
col1 col2 col3
USD,10000033020000000000000,-1144206.34
The 2nd column is alphanumeric, it contains some rows which have only numbers and some which have numbers and alphabets.
The 3rd column contains only numbers with positive or negative values.
I am facing problem with alignment. when i open the spooled csv file then i find that the 3rd column is aligned to right .
In the 2nd column, rows which have only numbers are right justified and rows which have alpha numeric data are left justified.
I tried using the JUSTIFY function in sql plus but still it is not working for me.
Can any body give your opinion on how to control the alignment in spooled csv files.
Your responce is highly appreciated.
Here is my code :
WHENEVER SQLERROR CONTINUE
SET TIMING off
set feedback off
set heading off
set termout OFF
set pagesize 0
set linesize 200
set verify off
set trimspool ON
SET NEWPAGE NONE
col to_char(glcd.segment1||glcd.segment2||glcd.segment3||glcd.segment4||glcd.segment5||glcd.segment6) ALIAS CONCATENATED_SEGMENTS
col CONCATENATED_SEGMENTS justify left
col to_char(decode(glbal.currency_code,glsob.currency_code,
(begin_balance_dr - begin_balance_cr) + (period_net_dr -period_net_cr),
(begin_balance_dr_beq - begin_balance_cr_beq) + (period_net_dr_beq -period_net_cr_beq))) alias Total_Functional_Currency
col Total_Functional_Currency justify left
COlUMN V_INSTANCE NEW_VALUE V_inst noprint
select trim(lower(instance_name)) V_INSTANCE
from v$instance;
column clogname new_value logname
select '/d01/oracle/'|| '&&V_inst' ||'out/outbound/KEMET_BALANCE_FILE_EXTRACT' clogname from dual;
spool &&logname..csv
SELECT glsob.currency_code ||','||
to_char(glcd.segment1||glcd.segment2||glcd.segment3||glcd.segment4||glcd.segment5||glcd.segment6) ||','||
to_char(decode(glbal.currency_code,glsob.currency_code,
(begin_balance_dr - begin_balance_cr) + (period_net_dr -period_net_cr),
(begin_balance_dr_beq - begin_balance_cr_beq) + (period_net_dr_beq -period_net_cr_beq)))
from gl_balances glbal , gl_code_combinations glcd , gl_sets_of_books glsob
where period_name = '&1' /* Period Name */
and glbal.translated_flag IS NULL
and glbal.code_combination_id = glcd.code_combination_id
and glbal.set_of_books_id = glsob.set_of_books_id
and glbal.actual_flag = 'A'
and glsob.short_name in ('KEC-BOOKS' , 'KUE' , 'KEU','KEMS', 'KEAL' , 'KEAL-TW' , 'KEAL-SZ' , 'KEAM')
and glcd.segment1 != '05'
and decode(glbal.currency_code , glsob.currency_code , (begin_balance_dr - begin_balance_cr) + (period_net_dr -period_net_cr) ,
(begin_balance_dr_beq - begin_balance_cr_beq) + (period_net_dr_beq -period_net_cr_beq)) != 0
and glbal.template_id IS NULL
ORDER BY glcd.segment1 || glcd.segment2 || glcd.segment3 || glcd.segment4 || glcd.segment5 || glcd.segment6
/
spool off
SET TIMING on
set termout on
set feedback on
set heading on
set pagesize 35
set linesize 100
set echo on
set verify on
Thanks
Sandeep