在函数中处理返回数据很长已经超过 varchar(40000)了,我定义成return long 返回,但是还是会报错,使用out long也报错啊!
有什么办法 解决 返回出来的 长度 超过4k的 ,要用一个变量实现,不能用多个参数返回,谢谢!比如下面函数:
CREATE OR REPLACE FUNCTION funny2(o_yct OUT LONG) RETURN LONG IS
v_yct VARCHAR2(32767);
BEGIN
v_yct := rpad('a', 32750, 'b');
/*SELECT instr(v_yct, ',', 1) INTO v_find FROM dual;*/
o_yct:=v_yct;
RETURN v_yct ;
END;调度会报字符串太短!
有什么办法 解决 返回出来的 长度 超过4k的 ,要用一个变量实现,不能用多个参数返回,谢谢!比如下面函数:
CREATE OR REPLACE FUNCTION funny2(o_yct OUT LONG) RETURN LONG IS
v_yct VARCHAR2(32767);
BEGIN
v_yct := rpad('a', 32750, 'b');
/*SELECT instr(v_yct, ',', 1) INTO v_find FROM dual;*/
o_yct:=v_yct;
RETURN v_yct ;
END;调度会报字符串太短!
解决方案 »
- 一台电脑访问局域网中的另一台电脑的oracle怎么配置啊,两台都装了oracle
- 关于oracle导入导出的问题
- oracle数据库关联查询的sql问题!!!!
- 求助:过程老是编译出错,不能成功建立,大侠们看看。急!!!
- oracle8i的数据库备份导入到oracle9i的服务器中,会遇到什么问题吗?是否可行?
- 怎么把服务器上的数据导入本机的数据库里呢?
- 加急,急急急.......急急急.急急急.急急急.急急急.急急急.
- 如何分组求出,几列和其中一列的关系只出现过一次的呢
- oracle 数据的导入导出问题,请教!
- Oracle存储过程中EXECUTE IMMEDIATE 执行结果是空时怎么继续执行?
- 错误信息: ORA-12801、ORA-00600。请问各大虾这是什么原因呢?
- 这样的要求该如何设计?
clob
clob 也试过了,也不行!
查一下sga的大小select * from v$parameters
where name like 'db%';更改db_cache_size大小
alter system set db_cache_size=25165824 scope=both;
没有权限,查不了 v$parameters
测试如下:
create or replace function at1 return varchar2 is
Result varchar2(32766);
begin
Result := rpad('a', 5000, 'b');
return(Result);
end at1;create or replace procedure ap1 is
res varchar2(32766);
begin
res := rpad('a',5000,'b');
dbms_output.put_line(res);
end ap1;
SQL> set long 10000;
SQL> set linesize 10000;
SQL> set serverout on size 10000;
SQL> select at1() from dual;
select at1() from dual
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "QMYSTEST.AT1", line 5
SQL> execute ap1;
abb.....过程略了,csdn认为我刷屏呢,自己测试吧b
PL/SQL procedure successfully completed