open 表达式类型错误(急!!!!!!)
package程序如下:
create or replace package scada.GETWINDENERGYDENSITY AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE GetDenSity
(
wf_id IN VARCHAR2,
sdate IN VARCHAR2,
edate IN VARCHAR2,
eqid IN VARCHAR2,
WindCount OUT T_CURSOR
);
end GETWINDENERGYDENSITY;
create or replace package body scada.GETWINDENERGYDENSITY AS
PROCEDURE GetDenSity
(
wf_id IN VARCHAR2,
sdate IN VARCHAR2,
edate IN VARCHAR2,
eqid IN VARCHAR2,
WindCount OUT T_CURSOR
)
is
temp_sql CLOB:='select ';
begin
temp_sql :=temp_sql ||'* from test';
OPEN WindCount FOR temp_sql ;
END GetDenSity;
end GETWINDENERGYDENSITY;
上面的代码报错信息如下:
Error: PLS-00382: 表达式类型错误
Line: 33
Text: OPEN WindCount FOR temp_sql ;
如果我将temp_sql参数定义为varchar2类型,则运行通过, 可是我的SQL语句是拼接出来,并且字符串超过varchar2的4000, 只好换成了CLOB类型, 问:如何游标运行CLOB类型参数运行正常。 在线等。谢谢!!!