Oracle执行超长SQL的存储过程问题
dropprocedurep_recordTYPEt_cursorisrefcursor;procedurep_record(re_cursoroutt_cursor)i...
drop procedure p_record
TYPE t_cursor is ref cursor;
procedure p_record(re_cursor out t_cursor) is v_sql_cursor varchar2(8000);
begin
v_sql_cursor:= '超长select语句 ';
execute immediate v_sql_cursor;
open re_cursor for v_sql_cursor;
end p_record;
这个代码有什么问题 我执行报错了 展开
TYPE t_cursor is ref cursor;
procedure p_record(re_cursor out t_cursor) is v_sql_cursor varchar2(8000);
begin
v_sql_cursor:= '超长select语句 ';
execute immediate v_sql_cursor;
open re_cursor for v_sql_cursor;
end p_record;
这个代码有什么问题 我执行报错了 展开
4个回答
展开全部
v_sql_cursor 的范围是8000
你的超长语句的长度超过这个范围没有
最后贴出报错信息 这样更好查错
你的超长语句的长度超过这个范围没有
最后贴出报错信息 这样更好查错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误的地方在于变量v_sql_cursor ,最大支持2000字节 ,所以v_sql_cursor:= '超长select语句 ' 会报错 ;
你应该修改为open re_cursor for 超长select语句
你应该修改为open re_cursor for 超长select语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询