35.1. 概念
一个嵌入式 SQL 程序由一种普通编程语言编写的代码(在这里是 C)和位于特殊标记的小节中的 SQL 命令混合组成。要构建该程序,源代码(*.pgc
)首先会通过嵌入式 SQL 预处理器,它会将源代码转换成一个普通 C 程序(*.c
),并且后来它能够被一个 C 编译器所处理(编译和链接详见第 35.10 节)。转换过的 ECPG 应用会通过嵌入式 SQL 库(ecpglib)调用
libpq 库中的函数,并且与 PostgreSQL 服务器使用普通的前端/后端协议通信。
嵌入式SQL在为 C 代码处理SQL命令方面比起其他方法来具有优势。首先,它会搞定向你的C程序变量传递或者读取信息时的繁文缛节。其次,程序中的 SQL 代码在编译时就会被检查以保证语法正确性。第三,C 中的嵌入式SQL是在SQL标准中指定的并且受到很多其他SQL数据库系统的支持。实现被设计为尽可能匹配这个标准,并且通常可以相对容易地把为其他 SQL 数据库编写的SQL程序移植到。
正如已经支出的,为嵌入式SQL接口编写的程序是插入了用于执行数据库相关动作的特殊代码的普通的 C 程序。这种特殊代码总是具有这样的形式:
EXEC SQL ...;复制
这些语句在语法上取代了一个 C 语句。取决于特定的语句,它们可以出现在全局层面或者是一个函数中。嵌入式 SQL语句遵循普通SQL代码的大小写敏感性规则, 而不是 C 的大小写敏感性规则。它们也允许嵌套的 C 风格注释(SQL 标准的一部分)。 不过,程序的 C 部分遵循 C 的标准不接受嵌套注释。
下列小节解释了所有嵌入式 SQL 语句。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
明明想执行的SQL是DELETE、UPDATE,但为什么看到的是SELECT(FDW的实现原理解析)
小满未满、
393次阅读
2025-03-19 23:11:26
PostgreSQL初/中/高级认证考试(3.15)通过考生公示
开源软件联盟PostgreSQL分会
387次阅读
2025-03-20 09:50:36
9.9 分高危漏洞,尽快升级到 pgAdmin 4 v9.2 进行修复
严少安
298次阅读
2025-04-11 10:43:23
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
242次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
239次阅读
2025-04-07 12:14:29
IvorySQL 4.4 发布 - 基于 PostgreSQL 17.4,增强平台支持
通讯员
230次阅读
2025-03-20 15:31:04
PG vs MySQL 执行计划解读的异同点
进击的CJR
163次阅读
2025-03-21 10:50:08
PostgreSQL分区管理扩展——pg_partman
chirpyli
130次阅读
2025-03-19 15:48:31
手把手教你在 openKylin 上部署 IvorySQL 4.4
严少安
125次阅读
2025-03-27 20:41:28
postgresql+patroni+etcd高可用安装
necessary
121次阅读
2025-03-28 10:11:23