如何使用 isql Firebird 3.04 格式化 CSV 文件中的输出?

问题描述 投票:0回答:3

我编写了以下脚本来从数据库中选择数据并使用 isql 将其保存在 CSV 文件中:

OUTPUT temp/filename.csv FORMAT csv DELIMITED BY ';';
SELECT dept_no, department, location FROM department;

我在 CSV 文件中得到以下结果:

DEPT_NO DEPARTMENT                LOCATION        
======= ========================= =============== 
000     Corporate Headquarters    Monterey        
100     Sales and Marketing       San Francisco   
600     Engineering               Monterey        
900     Finance                   Monterey        
180     Marketing                 San Francisco   
620     Software Products Div.    Monterey        
621     Software Development      Monterey        
622     Quality Assurance         Monterey        
623     Customer Support          Monterey        
670     Consumer Electronics Div. Burlington, VT  
671     Research and Development  Burlington, VT  
672     Customer Services         Burlington, VT  
130     Field Office: East Coast  Boston          
140     Field Office: Canada      Toronto         
110     Pacific Rim Headquarters  Kuaui           
115     Field Office: Japan       Tokyo           
116     Field Office: Singapore   Singapore       
120     European Headquarters     London          
121     Field Office: Switzerland Zurich          
123     Field Office: France      Cannes          

DEPT_NO DEPARTMENT                LOCATION        
======= ========================= =============== 
125     Field Office: Italy       Milan    

但是,我需要得到一个输出 1) 没有重复的标题和 2) 列中数据之间没有空格。

理想的输出应该是这样的:

ID;LASTNAME;FIRSTNAME;DOB
1;Miller;Steve;1980-06-28
2;Jones;Martha;1965-11-02
3;Waters;Richard;1979-10-15

谁能帮我解决这个问题?

csv output firebird isql firebird-3.0
3个回答
1
投票

这对你有帮助。它使 isql 重复每一次

isql -pag 100000

1
投票

可以在select中的每个字段(最后一个除外)添加分号

;
如下图:

select (fieldname) || ';' as xxxxx , (fieldname) || ';' as xxxxx ........

标题仍然是一个领域。

1;Miller;Steve;1980-06-28
2;Jones;Martha;1965-11-02
3;Waters;Richard;1979-10-15

0
投票

这里我展示了一个输出到制表符分隔文件的示例

output.tsv
.

关闭标题:

SET HEADING OFF;

重定向输出到文件:

OUTPUT 'output.tsv';

输出自己的header:

SELECT 'DEPT_NO' || ASCII_CHAR(9) || 'DEPARTMENT' || ASCII_CHAR(9) || 'LOCATION' FROM RDB$DATABASE;

输出数据:

SELECT DEPT_NO || ASCII_CHAR(9) || DEPARTMENT || ASCII_CHAR(9) || LOCATION FROM DEPARTMENT;
© www.soinside.com 2019 - 2024. All rights reserved.