2013-05-27 95 views

回答

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都內置了對綁定 變量的支持,它只是使用此支持而不是僅僅使用 將一個字符串連接起來並提交給數據庫。

例如,Java有PreparedStatement,它允許使用綁定 變量和Statement,它使用字符串連接 的方法。如果您使用支持綁定變量的方法,則API 本身會在運行時將綁定變量值傳遞給Oracle,而您只需按照正常方式提交SQL語句。沒有必要 分別將綁定變量值傳遞給Oracle,實際上沒有 您的部分工作。對綁定變量的支持不僅僅限於Oracle - 對於其他RDBMS平臺(如 Microsoft SQL Server)很常見,所以沒有理由不使用它們,因爲它們可能只是Oracle的一項功能。

不知道爲什麼你問因爲這些信息網站上有http://www.akadia.com/services/ora_bind_variables.html