内嵌 SQL 程序包含采用标准编程语言(本例中为 C 语言)编写的代码,其中混合了用特殊标记部分撰写的 SQL 命令。为构建该程序,首先通过内嵌 SQL 预处理器对源代码 (*.pgc
) 执行传递,从而将其转换为标准 C 程序 (*.c
),然后可由 C 编译器对其进行处理。(有关编译和链接的详细信息,请参见 第 34.10 节。)已转换的 ECPG 应用程序通过内嵌 SQL 库 (ecpglib) 调用 libpq 库中的函数,并使用标准前端-后端协议与 PostgreSQL 服务器通信。
内嵌SQL在处理SQL中具有优势C代码中的命令。首先,它负责在中的变量之间来回传递繁琐的信息SQLCSQL程序。其次,在构建时会对程序中的 SQL 代码进行语法正确性检查。第三,内嵌SQLin CSQL在
标准中指定,并受许多其他SQL数据库系统支持。 PostgreSQL 实现旨在尽可能与该标准匹配,通常可以将为其他 SQL 数据库编写的内嵌
EXEC SQL ...;
程序轻松移植到 PostgreSQL。
内嵌SQL如前所述,为内嵌SQL编写的程序SQL接口是正常的 C 程序,其中插入了特殊代码以执行与数据库相关操作。此特殊代码始终采用
形式