oracle 繫結變數

2021-09-01 10:58:21 字數 725 閱讀 3032

不太喜歡看到在procedure用||拼接sql的語句

所以貼了個繫結變數的例子,僅供參考

create or replace procedure using_test(t_name nvarchar2) as

v_id char;

v_*** char;

begin

execute immediate '

select id,*** from test_zyy

where name=:1'

into v_id, v_***

using t_name;

dbms_output.put_line('id:' || v_id || '性別:' || v_***);

exception

when others then

dbms_output.put_line('找不到相應資訊!');

end using_test;

有人說過程會自定優化**,呵呵,不知道這是道聽途說,還是真nb看過**

反正我是不知道,但是有個alter system set 

cursor_sharing

=similar

的語句可以強制使用共享區,

讓硬解析的寫法轉化為軟解析-繫結變數。

但是這種方法不推薦用,因為在一些條件下,會更加降低執行速度,

最明顯的例子就是分頁 rownum這樣的東東。

oracle變數繫結

一 游標 游標可以理解為sql語句的乙個控制代碼,也叫sql語句的指標,游標指向一條sql語句,oracle會話要執行一條sql時,首先要開啟游標。二 sql解析的過程 硬解析步驟 1.對sql語句進行語法檢查,看是否有語法錯誤 2.通過資料字典,檢查sql語句中涉及的物件和列是否存在 3.檢查sq...

Oracle 繫結變數用法

在oracle 中,對於乙個sql語句,存在兩種可選的解析過程,一種是硬解析,一種是軟解析.乙個硬解析需要經解析,制定執行路徑,優化訪問計畫等許多的步驟.硬解釋不僅僅耗費大量的cpu,更重要的是會佔據重要的們閂資源,嚴重影響了系統的併發效率。當乙個sql語句提交後,oracle會首先檢查一下共享緩衝...

oracle 動態sql 繫結變數

無繫結變數的非sql查詢 declare v sql varchar2 4000 begin 使用execute immediate執行動態sql,最後提交事物 v sql create table account id number 3 not null,name varchar2 50 not ...