可以用分段形式打印declare
num number;
i number;
n number;
cursor t_sor is
select col_name from table_name where ...;
begin
for v_sor in t_sor loop
num:=length(v_sor.col_name);
i:=1;
n:=num/10;--分十次
loop
exit when n>num;
dbms_output.put_line(substr(v_sor.col_name,i,n));
i:=n;
n:=n+n;
end loop;
end loop;
end;
/
num number;
i number;
n number;
cursor t_sor is
select col_name from table_name where ...;
begin
for v_sor in t_sor loop
num:=length(v_sor.col_name);
i:=1;
n:=num/10;--分十次
loop
exit when n>num;
dbms_output.put_line(substr(v_sor.col_name,i,n));
i:=n;
n:=n+n;
end loop;
end loop;
end;
/
begin
for v_sor in t_sor loop
num:=length(v_sor.col_name);
i:=1;
n:=trunc(num/10); --分十次
m:=mod(num,10)
loop
exit when n>num;
if i=1 then
dbms_output.put_line(substr(v_sor.col_name,i,n));
elsif n=n*10 then
dbms_output.put_line(substr(v_sor.col_name,i,m));
else
dbms_output.put_line(substr(v_sor.col_name,i,i));
end if;
i:=n;
n:=n+n;
end loop;
end loop;
end;
/
看起来比较烦人,楼主优化一下吧。