学习绑定变量
绑定变量是在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
用(: )引用绑定变量,不是绑定变量不用:

浙公网安备 33010602011771号