您的位置:首页 > 其它

绑定变量学习示例-未完待续

2016-02-19 16:39 295 查看
示例一 plsql中使用绑定变量

[oracle@Oracle11g 2016]$ cat 021801.sql 修改前的sql语句

declare

type rc is ref cursor;

l_rc rc;

l_dummy all_objects.object_name%type;

l_start number default dbms_utility.get_time;

begin

for i in 1..1000 loop

open l_rc for

'select object_name from all_objects where object_id='||i;

fetch l_rc into l_dummy;

close l_rc;

end loop;

dbms_output.put_line(round((dbms_utility.get_time-l_start)/100,2)||'seconds...');

end;

/

[oracle@Oracle11g 2016]$ cat 021802.sql 修改后的sql语句

declare

type rc is ref cursor;

l_rc rc;

l_dummy all_objects.object_name%type;

l_start number default dbms_utility.get_time;

begin

for i in 1..1000 loop

open l_rc for

'select object_name from all_objects where object_id=:x' using i;

fetch l_rc into l_dummy;

close l_rc;

end loop;

dbms_output.put_line(round((dbms_utility.get_time-l_start)/100,2)||'seconds...');

end;

/

示例二 简单sql语句中使用绑定变量

定义变量

SQL> var a number;

给变量赋值

SQL> exec :a := 7803;

PL/SQL procedure successfully completed.

使用绑定变量

SQL> select object_id,object_name from all_objects where object_id=:a;

OBJECT_ID OBJECT_NAME

---------- ------------------------------

7803 V$DIAG_IPS_PACKAGE_INCIDENT

示例三 存储过程中调用 绑定变量

create or replace procedure test_bind ( obj_id in number,obj_name out varchar2 )
as
v_sql varchar2(10000) := null;
begin
v_sql := 'select object_name from all_objects where object_id= :1'; --此处绑定变量 可以随便写
EXECUTE IMMEDIATE v_sql into obj_name using obj_id; --注意此处的using子句,就是调用上面定义的绑定变量
dbms_output.put_line(obj_id ||' '|| obj_name);
end;

绑定变量 基本熟悉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: