数据库-嵌入SQL访问接口

嵌入式SQL(Embedded SQL) 是一种将SQL语句直接写入某些高级程序语言,如C、 COBOL、Java、Ada等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数 据以及处理数据的能力。

在SQL86规范中定义了对于COBOL、FORTRAN、PI/L等语言的嵌入式SQL的规范。在SQL89规范中,定义了对于C 语言的嵌入式SQL的规范。一些大型的数据库厂商发布的数据 库产品中,都提供了对于嵌入式SQL的支持,如Oracle、DB2等。

在这一方法中,将SQL文嵌入的目标源码的语言称为宿主语言。

提供对于嵌入式SQL的支持,需要数据库厂商除了提供DBMS之外,还必须提供一些工 具。为了实现对于嵌入式SQL的支持,技术上必须解决以下问题。

(1)宿主语言的编译器不能识别和接受SQL程序,需要解决如何将SQL的宿主语言源代 码编译成可执行码。

(2)宿主语言的应用程序如何与DBMS之间传递数据和消息。

(3)如何把对数据的查询结果逐次赋值给宿主语言程序中的变量,以供其处理。

(4)数据库的数据类型与宿主语言的数据类型有时不完全对应或等价,如何解决必要的数 据类型转换问题。

为了解决上述这些问题,数据库厂商需要提供一个嵌入式SQL的预编译器,把包含有嵌入 式SQL的宿主语言源码转换成纯宿主语言的代码。这样一来,源码即可使用宿主语言对应的编 译器进行编译。通常情况下,经过嵌入式SQL的预编译之后,原有的嵌入式SQL会被转换成 一系列函数调用。因此,数据库厂商还需要提供一系列函数库,以确保链接器能够把代码中的 函数调用与对应的实现链接起来。

嵌入式SQL中除了可以执行标准SQL程序之外,为了对应嵌入的需要,还增加了一些额 外的语法成分。主要包括宿主变量使用声明、数据库访问、事务控制、游标操作的语法等。

相关推荐
洛北辰南32 分钟前
系统架构设计师—案例分析—数据库篇—分布式缓存技术
数据库·分布式·系统架构·缓存技术
东阳马生架构33 分钟前
Netty基础—4.NIO的使用简介一
java·网络·netty
luckyext41 分钟前
Postman用JSON格式数据发送POST请求及注意事项
java·前端·后端·测试工具·c#·json·postman
程序视点1 小时前
Redis集群机制及一个Redis架构演进实例
java·redis·后端
鱼樱前端1 小时前
Navicat17基础使用
java·后端
winner88811 小时前
Hive SQL 精进系列:PERCENTILE_APPROX 搞定分位数
hive·hadoop·sql
星光璀璨山河无恙1 小时前
【MySQL】数据库简要介绍和简单应用
数据库·mysql
黑风风1 小时前
深入理解Spring Boot Starter及如何自定义Starter
java·spring boot·后端
px52133441 小时前
Solder leakage problems and improvement strategies in electronics manufacturing
java·前端·数据库·pcb工艺
鱼樱前端2 小时前
Mac M1安装MySQL步骤
java·后端