mdsk.net
当前位置:首页 >> orAClE存储过程 游标和动态赋值问题 >>

orAClE存储过程 游标和动态赋值问题

oracle存储过程的参数游标应该怎样来赋值可以使用动态游标.REF CURSOR 存储过程中使用 open cursor xxx for select xxx ;

你这种, 表名字是是参数的情况下, 需要使用 动态 sql 来处理了.你需要先定义一个变量, 来存储你的 sql 语句.然后 OPEN v_cursor FOR 那个 sql 语句的字符串下面是一个例子:SQL> DECLARE 2 TYPE refcursor IS REF CURSOR; 3 v_

研究VB代码真是累啊,看了弱水三千写的东西,STOREPROCEDURE构件可以直接返回结果集的.在存储过程的参数设置的时候把他的DATATYPE设置为FTCURSOR或者FTDATASET试一下.

--本存储过程为简化版,格式、变量的定义等许多情况需要自行添加--本存储过程假设phone与name一一对应,即不会出现一个phone对应多个name的情况--如果实际情况不为一一对应,请在自行完善存储过程--①首先查出表1中phone不为空并

1、不用union的方式是达不到你说的效果的2、游标实际上是数据在内存中的地址,在open的时候将数据放入内存(如果内存足够大,能一次放下所有数据的话,实际上一般是部分放入内存),然后将这块内存的首地址返回,就是游标,指向第一条数据.3、当fetch的时候,游标地址自动+1,指向下一条记录4、所以游标实际上就是一个地址,指向数据的首地址,按照你的写法,每一次的open 都会将新的地址赋给游标,结果是如果游标名称一样的话,最后只会有最后的数据的首地址,而不会将三部分数据合并到一起.

第一,你首先要保证你的过程是正确的,然后才可以去考虑调用的问题;第二,你调用的语句有问题,在你的存储过程中,OPEN 已经打开了游标,而你采用FOR游标,它又要去打开一次,建议你采用简单得LOOP去遍历游标.可能就没有问题

可以将你的查询语句拼接成字符串~~保存到你定义的变量中.然后截取变量值再进行操作 游标查询如下: open rumcur for select m.name||','||bacresponsetime||','||sessioncount||','||round(responsetime,2)||','||hits from tablename; fetch rumcur into result;--result为定义的变量~ 然后分割截取~~ 也可以定义多个变量 fetch rumcur into [变量1],[变量2];

首先你是想要赋值给什么?是一个变量还是record.你要根据实际的情况出发,赋值给一个变量的时候你要考虑最大,最小,最新和最老的数据,看你这么取舍了.结果集的情况你可以用cursor或者array也可以.

直接写select语句就好了

可以,先单独创建,先用过程保存起来,再打开调用

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com