You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebird iSQL导出CSV出现记录间空行及CONCATENATION字样问题

问题原因

你的导出异常是两个配置冲突导致的:

  1. isql默认开启了拼接字符串提示,字段拼接输出时会自动插入CONCATENATION标记和额外换行
  2. isql默认开启分页输出,每页结束会插入多空行,同时你混用了OUTPUT自带的分隔配置和手动字段拼接逻辑,造成格式重复处理
解决方案

方案1(推荐):使用OUTPUT自带分隔能力,无需手动拼接字段

直接通过OUTPUT参数指定分隔规则,避免手动拼接的异常,SQL脚本修改为:

-- 关闭多余输出配置
SET HEADING OFF;
SET PAGESIZE 0;
SET CONCATENATION OFF;
SET ECHO OFF;

-- 配置输出规则,分隔符指定为你需要的分号
OUTPUT C:\SQL_Scripts\AddrBkExtract.csv FORMAT ASCII DELIMITED BY ';' QUOTE '"';

-- 直接查询所需字段即可
SELECT ID, "NAME", ADDRESS1, ADDRESS2, ADDRESS3, POSTCODE FROM ADDRESSBOOK;

-- 关闭输出流
OUTPUT;

方案2:保留手动拼接字段的写法

如果你需要自定义字段拼接逻辑,关闭OUTPUT的分隔配置即可,SQL脚本修改为:

SET HEADING OFF;
SET PAGESIZE 0;
SET CONCATENATION OFF;
SET ECHO OFF;

OUTPUT C:\SQL_Scripts\AddrBkExtract.csv FORMAT ASCII;

-- 用COALESCE处理空字段,避免单个字段为NULL导致整行结果为NULL
SELECT 
  a.ID || ';' || 
  a."NAME" || ';' || 
  COALESCE(a.ADDRESS1, '') || ';' || 
  COALESCE(a.ADDRESS2, '') || ';' || 
  COALESCE(a.ADDRESS3, '') || ';' || 
  COALESCE(a.POSTCODE, '') 
FROM ADDRESSBOOK a;

OUTPUT;
批处理调用优化

调用isql时添加-b批处理模式参数,可以进一步过滤多余的交互输出,示例:
isql -u 你的用户名 -p 你的密码 数据库连接地址 -i 你的SQL脚本文件路径 -b


内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:57:02