使用参数而无需创建存储过程

时间:2013-05-27 09:49:45

标签: oracle

是否可以在简单查询中使用或添加参数而无需创建存储过程或函数?在不创建存储过程的情况下Bind Variables是否可行?

2 个答案:

答案 0 :(得分: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​​访问数据库; ADO在VB,JDBC的情况下   Java的情况。所有这些API都内置了对bind的支持   变量,这只是使用这种支持而不仅仅是一种情况   自己连接一个字符串并将其提交到数据库。

     

例如,Java有PreparedStatement,它允许使用bind   变量和Statement,它使用字符串连接   做法。如果使用支持绑定变量的方法,则使用API   它本身在运行时将绑定变量值传递给Oracle   只是正常提交​​您的SQL语句。没有必要   分别将绑定变量值传递给Oracle,实际上没有   你的额外工作。对绑定变量的支持不仅仅是   仅限于Oracle - 这对其他RDBMS平台来说很常见,例如   Microsoft SQL Server,所以没有理由不使用它们   因为它们可能是仅限Oracle的功能。

由于网站http://www.akadia.com/services/ora_bind_variables.html

上存在此信息,因此不确定您要问的原因

答案 1 :(得分:1)

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

请参阅http://en.wikipedia.org/wiki/Prepared_statement