
# define和undef指令
在嵌入式SQL程序中也可以使用C语言版本的#define和#undef。区别在于定义的值会在哪里被计算，如果使用EXEC SQL DEFINE，那么ecpg预处理阶段会计算这些定义并替换值。如果使用C语言版本的#define和#undef，那么会在编译器处理阶段会计算这些定义并替换值。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
不能将#define用于嵌入式SQL查询中使用的变量，因为嵌入式SQL预编译器无法执行该声明。
