是否可以在简单查询中使用或添加参数而无需创建存储过程或函数?在不创建存储过程的情况下Bind Variables是否可行?
答案 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的功能。
答案 1 :(得分:1)
好吧,假设您将使用外部编程语言执行查询,准备好的语句将完成工作。