首页 > 解决方案 > 是否有任何 RDBMS 提供预准备语句的功能?

问题描述

我在 Java 中学习了 JDBC 中准备好的语句的概念。所以我认为prepared statement是JDBC中的一个概念,而不是RDBMS中的一个概念。

为了看看我的猜测是否正确,请问是否有任何主要的 RDBMS 在它们的类似 PL/PSM 的语言中提供准备语句的功能,例如 PL/SQL、PL/pgSQL、MySQL、Transact-SQL?

如果有任何这样的 RDBMS,是否在 SQL 或类似 PL/PSM 的语言(如 PL/SQL、PL/pgSQL、MySQL、Transact-SQL)中提供了准备好的语句?

我读了存储过程和准备好的语句之间的区别..?,但是我找不到哪个提供准备语句的功能,虽然我认为准备语句是JDBC中的一个概念,而不是RDBMS中的一个概念,而存储过程只是RDBMS中的一个概念。

标签: sqljdbcprepared-statementrdbms

解决方案


符合 SQL 的 RDBMS 的每个实现都应支持用于服务器端预准备语句的 API。我想不出一个不支持准备好的语句的 RDBMS。

JDBC 有一个 PreparedStatement 类。每个品牌的 JDBC 驱动程序的实现都不同,但我使用的所有这些都只是委托给 RDBMS API。JDBC 驱动程序将 SQL 查询字符串发送到数据库服务器,并且 SQL 可能包含例如参数占位符?(某些品牌 - 如 Oracle - 支持命名参数)。

一些数据库实现提供了可用于执行准备好的语句的包或函数,因此您可以在运行时在存储过程中创建查询。

一些数据库实现还支持可以作为查询调用的语句PREPAREEXECUTE这允许您在存储过程或 SQL 脚本中使用准备好的语句。


推荐阅读