官术网_书友最值得收藏!

6.1 使用方法

我們可以在多種環(huán)境下使用綁定變量。

1.SQL

下面看看在SQL中如何使用綁定變量。


var v_empno number;            //聲明變量
exec :v_empno:=7369;            //變量賦值
select * from emp where empno=:v_empno;      //執(zhí)行查詢(引用變量)

2.PL/SQL:

下面看看在PL/SQL中如何使用綁定變量。

1)PL/SQL中靜態(tài)SQL語(yǔ)句使用綁定變量:


declare
    vc_name varchar2(10);
begin
execute immediate 'select ename from emp where empno=:1' into vc_name using 7369;
dbms_output.put_line(vc_name);

2)PL/SQL中動(dòng)態(tài)SQL語(yǔ)句使用綁定變量:


declare
vc_column varchar2(10);
vc_sql varchar2(4000);
n_temp number;
vc_ename varchar2(10);
begin
vc_column:='empno';
vc_sql:='delete from emp where '||vc_column||'=:1 returning enameinto :2';
execute immediate vc_sql using 7369 returning into vc_ename;
dbms_output.put_line(vc_ename);

3)PL/SQL中通過批量綁定使用綁定變量:


declare
cur_empsys_refcursor;
    vc_sql_varchar2(4000);
type namelist is table of varchar2(10);
enames namelist;
    CN_BATCH_SIZE constant pls_integer:=1000;
begin
vc_sql:='select ename from emp where emp>:1';
open cur_emp for vc_sql using 7900;
loop
fet chcur_emp bulk collect into enames limit CN_BATCH_SIZE;
for i in 1..enames.count loop
dbms_output.put_line(enames(i));
end loo;
exit when enames.count<CN_BATCH_SIZE;
end loop;
closecur_emp;

3.Java

下面看看在Java中怎樣使用綁定變量。

1)Java中調(diào)用靜態(tài)SQL使用綁定變量:


String query="select empno,ename from emp where empno=7369";
pstmt=connect.prepareStatement(query);
res=pstmt.executeQuery();

String query="select empno,ename from emp where empno=?";
pstmt=connect.prepareStatement(query);
pstmt.setIne(1,7369);
res=pstmt.executeQuery();

2)Java中通過批量綁定使用綁定變量:


String dml="update emp set sal=? whereempno=?";
pstmt=connection.prepareStatement(dml);
pstmt.clearBatch();
for (int i=0;i<UPDATE_COUNT;++i)
{
pstmt.setInt(1,generateEmpno(i));
pstmt.setIne(2,generateSal(i));
pstmt.addBatch();
}
pstmt.executeBatch();
connection.commit();
//這段代碼使用的是批量綁定的方式

因?yàn)橐肓私壎ㄗ兞浚瑢?duì)于SQL解析而言會(huì)帶來一些變化。下面通過帶有綁定變量的SQL解析問題加以說明。

主站蜘蛛池模板: 榆树市| 永仁县| 大姚县| 东光县| 包头市| 泾源县| 阿合奇县| 准格尔旗| 上饶市| 拉萨市| 阿拉善盟| 宣化县| 二手房| 监利县| 外汇| 南郑县| 兴国县| 托克托县| 新兴县| 会东县| 县级市| 嘉荫县| 长海县| 五原县| 东辽县| 陵水| 天长市| 伊通| 芒康县| 惠安县| 三门峡市| 红河县| 德庆县| 新竹市| 黑水县| 正蓝旗| 堆龙德庆县| 贞丰县| 文成县| 四川省| 长武县|