create or replace procedure proc_statistics
is
tableHTML varchar2(4000);
begin   
   tableHTML := tableHTML || '<tr><td height=30 class=td2>  </td><td class=td2 align=center>A季度</td><td class=td2 align=center>B季度</td><td class=td2 align=center>C季度</td><td class=td2 align=center>D季度</td><td class=td2 align=center>E季度</td><td class=td2 align=center>F季度</td></tr>';
   
   dbms_output.put_line('==================================='|| tableHTML);
end;
exec proc_statistics 时,出现以下错误:ORA-06502: PL/SQL: 数字或值错误 : 主机绑定数组太小!
ORA-06512: 在 line 2请大虾们帮忙看看。

解决方案 »

  1.   

    试试:create or replace procedure proc_statistics
    is
    tableHTML varchar2(4000);
    begin   
       tableHTML := '<tr><td height=30 class=td2>  </td><td class=td2 align=center>A季度</td><td class=td2 align=center>B季度</td><td class=td2 align=center>C季度</td><td class=td2 align=center>D季度</td><td class=td2 align=center>E季度</td><td class=td2 align=center>F季度</td></tr>';
       
       dbms_output.put_line('==================================='|| tableHTML);
    end;------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716 
      

  2.   

    似乎
    dbms_output.put_line一次不能超过255字节长度你这超了
    tableHTML || 这个也没用吧?
      

  3.   


    谢谢。还真是这个原因。dbms_output.putline 每一行最多存入255个字节。
      

  4.   

    可以通过set serveroutput on buffer number 进行设置大小的
      

  5.   

    C:\Documents and Settings\user.HQ-TEXT>set ORACLE_SID=DBAC:\Documents and Settings\user.HQ-TEXT>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 18:22:02 2009Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL> conn sys/admin as sysdba;
    已连接。
    SQL> create or replace procedure proc_statistics
      2  is
      3  tableHTML varchar2(4000);
      4  begin
      5   tableHTML :=' <tr> <td height=30 class=td2>  </td> <td class=td2 align=cen
    ter>A季度 </td> <td class=td2 align=center>B季度 </td> <td class=td2 align=cente
    r>C季度 </td> <td class=td2 align=center>D季度 </td> <td class=td2 align=center>
    E季度 </td> <td class=td2 align=center>F季度 </td> </tr>';
      6
      7    dbms_output.put_line('==================================='|| tableHTML);  8  end;
      9  /过程已创建。SQL> set serveroutput on
    SQL> exec proc_statistics
    =================================== <tr> <td height=30 class=td2>  </td> <td
    class=td2 align=center>A季度 </td> <td class=td2 align=center>B季度 </td> <td
    class=td2 align=center>C季度 </td> <td class=td2 align=center>D季度 </td> <td
    class=td2 align=center>E季度 </td> <td class=td2 align=center>F季度 </td> </tr>PL/SQL 过程已成功完成。SQL>
    ------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716 
      

  6.   


    请问一下,你的Oracle是什么版本的?是否设置了缓冲区的大小。谢谢回复!
      

  7.   


    SET SERVEROUTPUT ON SIZE n
    or 
    DBMS_OUTPUT.ENABLE(n)这两个好像都只能设置输出缓冲区大小,而非DBMS_OUTPUT.PUT_LINE()的缓冲区大小。谢谢回复!