One of our systems was using an older version of SQL Anywhere and when I would run a query with the FORMAT TEXT option like this
select * from tblmed; output to e:\temp\med.txt format text
I would get a fixed width file with headers and ------'s under the headers indicating the column width. I also wrote a script to use those output files in a custom reporting system.
After a recent upgrade that same query producing a comma separated file with no headers. Is there a way to get the old fixed with output back?
I know I can rewrite the script but I would like to avoid that if possible.
Thanks in advance,
asked 20 Dec '11, 14:45
Interesting... we had a request for that old format recently and issued a fix. If you're not the one who requested the fix, it's another case of the phenomenon where requests or bug reports tend to come in groups :) Note that the fix below addresses dbisqlc -- I'm not sure what the java dbisql does.
SA Bug Fix: QTS 692617(OTW): fixed-width output with column headings was lost when ASCII renamed to TEXT
Versions Affected: 22.214.171.1240 and later
Fixed In: 126.96.36.19925, 188.8.131.5222
When we renamed 'ASCII' to 'TEXT' for the dbisqlc OUTPUT_FORMAT option, we lost the ability to generate the old format that dbisqlc called 'TEXT' which was fixed-width with column headers. Now, setting the OUTPUT_FORMAT to 'COLUMNS' will generate the old TEXT format.
For DBISQL, the following command line will probably get you close:
select * from tblmed > e:\temp\med.txt
When run in a command window, DBISQL prints result sets to the console with column names and a long line of dashes as you described. I recognize that it does not achieve your goal of not having to change your script files.
answered 03 Jan '12, 08:36