oracle存储过程中定义游标,请问游标定义语句中能使用变量么?
createorreplaceprocedurechange_new_paymentid(tablenamevarchar2)isv_sqlvarchar2(2000);...
create or replace procedure change_new_paymentid
(
tablename varchar2
)
is
v_sql varchar2(2000);
new_paymentid varchar2(100);
CURSOR CUR_prc_ctl_pll_REF(tablename2 varchar2(100) ) is
select idr idr from (
select /*+parallel(a,8)*/ a.payment_id payment_id , max(rowid) idr from tablename2 a
group by a.payment_id having(count(a.payment_id)>1));
ROW_CUR_prc_ctl_pll_REF CUR_prc_ctl_pll_REF%ROWTYPE;
游标定义语句中能使用变量么?为什么不行呢?求解 展开
(
tablename varchar2
)
is
v_sql varchar2(2000);
new_paymentid varchar2(100);
CURSOR CUR_prc_ctl_pll_REF(tablename2 varchar2(100) ) is
select idr idr from (
select /*+parallel(a,8)*/ a.payment_id payment_id , max(rowid) idr from tablename2 a
group by a.payment_id having(count(a.payment_id)>1));
ROW_CUR_prc_ctl_pll_REF CUR_prc_ctl_pll_REF%ROWTYPE;
游标定义语句中能使用变量么?为什么不行呢?求解 展开
3个回答
展开全部
不是这样的,存储过程中不是非要用游标啊,他有输入和输出参数,只要在过程中做相应的处理就会返回输出参数。游标的作用主要是为了循环提取数据,游标分隐性游标和显性游标。
举个例子(显性游标):
cursor
游标名
is
select
语句;
.....
while
游标名%
found
loop
.....
end
loop;
其中的select
语句提取的是一列值,然后每次取一个进行下面的循环。
(隐性游标):
for
游标名
in
(select
语句)loop
.....
.....
end
loop;
其中的select
语句提取的也是一列值,然后每次取一个进行下面的循环。
举个例子(显性游标):
cursor
游标名
is
select
语句;
.....
while
游标名%
found
loop
.....
end
loop;
其中的select
语句提取的是一列值,然后每次取一个进行下面的循环。
(隐性游标):
for
游标名
in
(select
语句)loop
.....
.....
end
loop;
其中的select
语句提取的也是一列值,然后每次取一个进行下面的循环。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询