8.8.2 动态SQL

2025-06-05 14:48:36 更新

SQL的动态SQL组件允许程序在运行时构造、提交SQL查询。与此相反,嵌入式SQL

语句必须在编译时完全确定,由预处理程序预编译和宿主语言编译程序编译。也就是说,在实

际使用时,源程序往往不能包括用户的所有操作,用户对数据库的操作有时往往在实际运行时

才提出请求,为此需要采用SQL的动态技术。动态SQL有如下两条语句。

1)动态SQL预备语句格式

EXEC SQL PREPARE〈动态SQL语句名〉FROM〈共享变量或字符串〉;

此处共享变量或字符串应该是一个完整的SQL语句。这个SQL语句可以在程序运行时由

用户输入才组合起来,但并不执行。

2)动态SQL执行语句格式

EXEC SQL EXECUTE〈动态 SQL 语句名〉;

使用动态SQL语句时,还可以改进技术:当预备语句组合而成的SQL语句只需执行一次,

那么预备语句可以在程序运行时由用户输入才组合起来,但并不执行.