实施步骤 1、先建立一个存储过程,作用是读取long信息, 因为我的过程一次性返回long的信息,我这里定义了30000个字符 所以最多只能返回30000个字符 如果我没读取一行返回信息,就能全部返回long的信息 不过我这里一次性返回30000字符已经可以满足你的要求 create or replace procedure readlong (viewname in varchar2,viewtext in out varchar2) as eachrow varchar2(30000); begin for row_str in (select text from user_views where view_name=upper(viewname) and rownum =1) loop eachrow := eachrow||trim(row_str.text); end loop; viewtext := eachrow; eachrow := ''; end; /2、我不会VB,只好用delphi测试,反正都一样的,在你的VB/DELPHI调用这个存储过程即可 with adostoredproc1 do begin close; parameters.parambyname('viewname').value:='你的VIEW名'; parameters.parambyname('viewtext').value:=''; execproc; end; edit1.text:=adostoredproc1.parameters.parambyname('viewtext').value;另外: 如果你要在SQLPLUS里面显示long的信息 可以这样写存储过程,下面的过程可以完全显示long的信息,因为是读一行显示一行的 上面的程序由于考虑了VB/DELPHI的调用,所以最多显示long的30000个字符 你也可以改改上面的程序,全部显示long的内容,但是会影响效率 create or replace procedure readlong as eachrow varchar2(4000); begin for row_str in (select text from user_views where view_name='你的VIEW名' and rownum =1) loop eachrow := trim(row_str.text); dbms_output.put_line(eachrow); end loop; end; /
刚刚说的有点小错误,在读取的时候只读了一行,但是已经足够长了,谁会写个view超过30000字符啊。。所有偶上面的代码是对的。。而且保险。。 create or replace procedure readlong as eachrow varchar2(4000); begin for row_str in (select name from aa where rownum =1) loop eachrow := trim(row_str.name); end loop; dbms_output.put_line(eachrow); end; /
1、先建立一个存储过程,作用是读取long信息,
因为我的过程一次性返回long的信息,我这里定义了30000个字符
所以最多只能返回30000个字符
如果我没读取一行返回信息,就能全部返回long的信息
不过我这里一次性返回30000字符已经可以满足你的要求
create or replace procedure readlong
(viewname in varchar2,viewtext in out varchar2)
as
eachrow varchar2(30000);
begin
for row_str in (select text from user_views where view_name=upper(viewname) and rownum =1) loop
eachrow := eachrow||trim(row_str.text);
end loop;
viewtext := eachrow;
eachrow := '';
end;
/2、我不会VB,只好用delphi测试,反正都一样的,在你的VB/DELPHI调用这个存储过程即可
with adostoredproc1 do
begin
close;
parameters.parambyname('viewname').value:='你的VIEW名';
parameters.parambyname('viewtext').value:='';
execproc;
end;
edit1.text:=adostoredproc1.parameters.parambyname('viewtext').value;另外:
如果你要在SQLPLUS里面显示long的信息
可以这样写存储过程,下面的过程可以完全显示long的信息,因为是读一行显示一行的
上面的程序由于考虑了VB/DELPHI的调用,所以最多显示long的30000个字符
你也可以改改上面的程序,全部显示long的内容,但是会影响效率
create or replace procedure readlong
as
eachrow varchar2(4000);
begin
for row_str in (select text from user_views where view_name='你的VIEW名' and rownum =1) loop
eachrow := trim(row_str.text);
dbms_output.put_line(eachrow);
end loop;
end;
/
create or replace procedure readlong
as
eachrow varchar2(4000);
begin
for row_str in (select name from aa where rownum =1) loop
eachrow := trim(row_str.name);
end loop;
dbms_output.put_line(eachrow);
end;
/