FUNCTION FILL_ARRAY (strQuery IN VARCHAR2) RETURN THEIS_TN_T
IS
temStr VARCHAR2(1000) := '';
strArray THEIS_TN_T := THEIS_TN_T();
RefCur_Array CursorType;BEGIN
OPEN RefCur_Array FOR strQuery;
IF RefCur_Array IS NOT NULL THEN
LOOP
FETCH RefCur_Array INTO temStr;
EXIT WHEN RefCur_Array%NOTFOUND;
strArray.EXTEND;
strArray(strArray.COUNT) := temStr;
END LOOP;
END IF;
RETURN strArray;
END FILL_ARRAY;
请问这个是什么意思啊?
IS
temStr VARCHAR2(1000) := '';
strArray THEIS_TN_T := THEIS_TN_T();
RefCur_Array CursorType;BEGIN
OPEN RefCur_Array FOR strQuery;
IF RefCur_Array IS NOT NULL THEN
LOOP
FETCH RefCur_Array INTO temStr;
EXIT WHEN RefCur_Array%NOTFOUND;
strArray.EXTEND;
strArray(strArray.COUNT) := temStr;
END LOOP;
END IF;
RETURN strArray;
END FILL_ARRAY;
请问这个是什么意思啊?
解决方案 »
- 求解:ora-28547:连接服务器失败,可能是 Oracle Net 管理失败
- oracle 安装 01092 错误
- oracle 10g web管理控制台
- oracle禁止修改和删除某条记录
- ORA-01002: 读取违反顺序 怎样解决?
- 求助各位大虾:Soralis登录问题
- 如何从一个存储过程返回所调用的另一个存储过程的返回值(汗!有点绕口,有兴趣的请进,在线等)
- Ms SqlServer存储过程转ORACLE格式,请求帮助!
- 急急急急急急急急急急急急急问...
- MSSQL远程连接ORCALE报错,ORCALE服务器装MSSQL连接正常。
- ora-00979!!急求
- 大家帮我看看这个语句怎么错了!!!!!在线等!!!!!
strArray.EXTEND;是分配空间+1,就可以往里面放一条数据
FUNCTION FILL_ARRAY( --定义函数名称:FILL_ARRAY
STRQUERY IN VARCHAR2 --函数入参:STRQUERY
)RETURN THEIS_TN_T --函数返回值:THEIS_TN_T(从函数体可以看出这是个 对象类型)
IS
TEMSTR VARCHAR2(1000) := ''; --定义变量
STRARRAY THEIS_TN_T := THEIS_TN_T(); --定义变量并调用 对象的构造方法【THEIS_TN_T()】 初始化
REFCUR_ARRAY CURSORTYPE; --定义一个游标变量BEGIN
OPEN REFCUR_ARRAY FOR STRQUERY; --打开游标变量,由此可以看出传入的参数应该是一个sql字符串
IF REFCUR_ARRAY IS NOT NULL THEN --判断条件
LOOP --循环
FETCH REFCUR_ARRAY --从游标里取一条数据 into 到 TEMSTR
INTO TEMSTR;
EXIT WHEN REFCUR_ARRAY%NOTFOUND; --如果没有取到数据 跳出循环。
STRARRAY.EXTEND; --给 STRARRAY 扩展一个存储空间,将取到的数据存入
STRARRAY(STRARRAY.COUNT) := TEMSTR; --STRARRAY.COUNT 第一次应该是1,下一次增加,总之等于 STRARRAY 中存储的数据个数
END LOOP;
END IF;
RETURN STRARRAY; --将这个值返回
END FILL_ARRAY;
--查查就知道了
select * from all_types where type_name = 'THEIS_TN_T';
type THEIS_TN_T is table of varchar2(1000);你这个方法应该是在package里面吧?到package的定义(注意不是package body)里面找。