filepp 预处理 SQL 个文件

filepp preprocessing SQL files

我有 SQL 个文件,它们在我的应用程序中定义了一个业务模型。为了使它们更具可读性和 'debugable' ,我想在将它们发送到 mysql 数据库之前使用预处理器。我正在尝试使用 filepp (http://rpm.pbone.net/manpage_idpl_2294391_numer_1_nazwa_filepp.html) 通用预处理器,但是当我将字符串定义为宏时,它不会输出该行的其余部分,例如:

#define CCSTRING INSERT INTO DOMPOSPBS(ID,POS,PBS,VARIANT,PATTERN,SUBPART,PVARS,km3pos,VISIBLE)
set @TOPH_nv := ' 3.4 3.4.5.1.1 3.4.5.1.2 3.4.5.1.3 3.4.5.1.4 3.4.5.5.5' ;
set @TOPH := ' 3.4.5.1';
set @TOPS_nv := ' 3.4 3.4.5.1.2 3.4.5.1.3 3.4.5.1.4 3.4.5.5.5';
set @TOPS := ' 3.4.5.2';
set @BOTS := ' 3.4.5.1.0 3.4.5.4';
set @BOTHE := ' 3.4.5.1.0 3.4.5.3';
set @BOTS_nv := ' 3.4 3.4.5.3.1 3.4.5.3.2 3.4.5.3.3 3.4.5.5.5';
set @BOTHF := ' 3.4.5.3.3 3.4.5.5.4';
set @BOTHF_nv := ' 3.4 3.4.5.5.5';
set @DOM      := ' 3.4';
set @DOMF     := ' 3.4.5.5.5';

CCSTRING VALUES('1','PM_T00_F4 (0)','3.4.2.3','','',@TOPS,'ANY','0',1);
CCSTRING VALUES('1','PM_T00_F4 (0)','3.4.2.3','','',@TOPS_nv,'ANY','0',0);
CCSTRING VALUES('2','PM_T01_E5 (1)','3.4.2.3','','',@TOPS,'ANY','1',1);

将输出:

set @TOPH_nv := ' 3.4 3.4.5.1.1 3.4.5.1.2 3.4.5.1.3 3.4.5.1.4 3.4.5.5.5' ;
set @TOPH := ' 3.4.5.1';
set @TOPS_nv := ' 3.4 3.4.5.1.2 3.4.5.1.3 3.4.5.1.4 3.4.5.5.5';
set @TOPS := ' 3.4.5.2';
set @BOTS := ' 3.4.5.1.0 3.4.5.4';
set @BOTHE := ' 3.4.5.1.0 3.4.5.3';
set @BOTS_nv := ' 3.4 3.4.5.3.1 3.4.5.3.2 3.4.5.3.3 3.4.5.5.5';
set @BOTHF := ' 3.4.5.3.3 3.4.5.5.4';
set @BOTHF_nv := ' 3.4 3.4.5.5.5';
set @DOM      := ' 3.4';
set @DOMF     := ' 3.4.5.5.5';

INSERT INTO DOMPOSPBS(ID,POS,PBS,VARIANT,PATTERN,SUBPART,PVARS,km3pos,VISIBLE)
INSERT INTO DOMPOSPBS(ID,POS,PBS,VARIANT,PATTERN,SUBPART,PVARS,km3pos,VISIBLE)
INSERT INTO DOMPOSPBS(ID,POS,PBS,VARIANT,PATTERN,SUBPART,PVARS,km3pos,VISIBLE)

没有该行的其余部分。有什么建议吗?

经过多次测试,我发现问题出在宏定义行末尾的 CRLF。只留下LF就解决了问题。