学习绑定变量

绑定变量是在SQL*Plus中创建的变量,然后在PL/SQL和SQL中引用,可以使用它存储返回的代码,调试PL/SQL子程序

创建绑定变量用 variable  例如:variable 绑定变量名 类型(variable li varchar2(20))

在PL/SQL中引用绑定变量在为其赋值 ( :绑定变量名 := 值)例如(:li := 'a' )

完整的类型是:

variable li varchar2(20)

begin

:li := 'a';

end;

/

使用print li 可以在SQL*Plus 中显示绑定变量 如

SQL>print li;

li

----------

a

SQL*Plus提供了refcursor绑定变量使SQL*Plus能够提取和格式化PL/SQL块中包含的select语句返回的结果。它能用于引用存储过程中的PL/SQL块的游标变量,将select 语句存在数据库中,被SQL*Plus引用。

声明refcursor变量

variable book_info(绑定变量名) refcursor

进行处理

begin

open :book_info for select isbn,bprice,bauthor from bookmenu    //(open....for select 打开一个游标,执行查询,并把SQL*Plus book_info变 量绑定给游标变量)

where isbn = '7040195836';

end;

/

用print book_info 显示select 语句执行的结果同时print也关闭了游标,如需重新打印结果,需重新执行PL/SQL块

在过程中使用绑定变量:

定义类型

create or replace package cv_types as

type binfotyp is refcursor return book%rowtype;

end cv_types;

/

然后创建存储过程

create or replace procedure binfo_rpt(b_cv in out cv_types.binfotyp) as  //绑定变量作为参数传递给过程

begin

open b_cv for select isbn,bprice from bookmenu

where isbn = '7040195836';

end;

/

执行带有SQL*Plus绑定变量的过程

variable odcv refcursor

execute binfo_rpt(:odcv)

用print odcv打印绑定变量。

可以改变绑定变量名从而执行多次(改变odcv换成另外的名字也可不变)

函数中使用refcursor变量

创建存储函数:

create or replace function binfo_fn

return cv_types.binfotyp is

resultset cv_types.binfotyp;

begin

open resultset for select isbn,bprice from bookmenu

where isbn = '7040195836';

end;

/

执行该函数

variable rc refcursor

execute :rc := binfo_fn

打印绑定变量

print rc

用(: )引用绑定变量,不是绑定变量不用:

 

posted @ 2012-02-19 09:49  闻鸡起舞,凿壁借光  阅读(237)  评论(0)    收藏  举报