1

是否可以在不需要创建存储过程或函数的情况下在简单查询中使用或添加参数?是否可以在不创建存储过程的情况下绑定变量?

4

2 回答 2

2

你从哪里运行代码?如果您从 Java / VB 之类的语言运行,您将使用存储过程或准备好的语句。

如果从 Sql *Plus 终端或其他 Sql UI 使用

SQL> variable deptno number 
SQL> exec :deptno := 10 
SQL> select * from
    emp where deptno = :deptno;

从 Java 或 VB 等高级语言使用存储过程,以下是您链接到的文章,所以不知道您为什么要问这个?

事实上,这个问题的答案其实很简单。当您使用 Java 或 VB 或其他任何方式组合 SQL 语句时,您通常使用 API 来访问数据库;VB 中的 ADO,Java 中的 JDBC。所有这些 API 都内置了对绑定变量的支持,这只是使用这种支持的一种情况,而不仅仅是自己连接字符串并将其提交到数据库。

例如,Java 有 PreparedStatement,它允许使用绑定变量,还有 Statement,它使用字符串连接方法。如果您使用支持绑定变量的方法,API 本身会在运行时将绑定变量值传递给 Oracle,您只需照常提交 SQL 语句即可。无需单独将绑定变量值传递给 Oracle,实际上您无需进行额外的工作。对绑定变量的支持不仅限于 Oracle - 它在其他 RDBMS 平台(如 Microsoft SQL Server)中很常见,因此没有理由不使用它们,因为它们可能是 Oracle 独有的特性。

不知道你为什么要问,因为网站上有这些信息http://www.akadia.com/services/ora_bind_variables.html

于 2013-05-27T10:06:17.547 回答
1

好吧,假设您将使用外部编程语言执行查询,准备好的语句将完成这项工作。

http://en.wikipedia.org/wiki/Prepared_statement

于 2013-05-27T10:01:34.327 回答