以下编译错误如何解决  请大家多多指教 我很菜菜····
SQL>  create or replace procedure show_space
  2   (p_segname in varchar2,
  3   p_type in varchar2 default 'TABLE',
  4   p_owner in varchar2 default user)
  5   as
  6   l_segname varchar2(100);
  7   l_type varchar2(20);
  8   l_total_blocks number;
  9   l_total_bytes number;
 10   l_unused_blocks number;
 11   l_unused_bytes number;
 12   l_LastUsedExtFileId number;
 13   l_LastUsedExtBlockId number;
 14   l_LAST_USED_BLOCK number;
 15   procedure p(p_label in varchar2,p_num in number)
 16   is
 17   begin
 18   dbms_output.put_line(rpad(p_label,40,'.')||p_num);
 19   end;
 20   begin
 21   l_segname:=upper(p_segname);
 22   l_type:=p_type;
 23   if (p_type='i' or p_type='I') then
 24   l_type:='INDEX';
 25   end if;
 26   if (p_type='t' or p_type='T') then
 27   l_type:='TABLE';
 28   end if;
 29   if (p_type='c' or p_type='C') then
 30   l_type:='CLUSTER';
 31   end if;
 32   dbms_space.unused_space
 33   (segment_owner=>p_owner,
 34   segment_name=>l_segname,
 35   segment_type=>l_type,
 36   total_blocks=>l_total_blocks,
 37   total_bytes=>l_total_bytes,
 38   unused_blocks=>l_unused_blocks,
 39   unused_bytes=>l_unused_bytes,
 40   LAST_USED_EXTENT_FILR_ID=>l_LastUsedExtFileId,
 41   LAST_USED_EXTENT_BLOCK_ID=>l_LastUsedExtBlockId,
 42   LAST_USED_BLOCK=>l_LAST_USED_BLOCK);
 43   p('Total Blocks',l_total_blocks);
 44   p('Total Bytes',l_total_bytes);
 45   p('Unused_Blocks',l_unused_blocks);
 46   p('Unused_Bytes',l_unused_bytes);
 47   p('Last Used Ext FileId',l_LastUsedExtFileId);
 48   p('Last Used Ext BlockId',l_LastUsedExtBlockId);
 49   p('Last Used Block',l_LAST_USED_BLOCK);
 50   end;
 51   /警告: 创建的过程带有编译错误。SQL> SHOW ERROR;
PROCEDURE SHOW_SPACE 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
32/2     PL/SQL: Statement ignored
32/2     PLS-00306: 调用 'UNUSED_SPACE' 时参数个数或类型错误

解决方案 »

  1.   

    32/2 PLS-00306: 调用 'UNUSED_SPACE' 时参数个数或类型错误
    错误已经很明白了,UNUSED_SPACE参数个数或类型不一致
    你什么版本?oracle的版本不一样提供的unused_space参数不一样你可以确认一下参数个数及类型:
    sql>desc dbms_space.unused_space
      

  2.   

    Oracle - OraDb11g_home1  11gR1版本
    SQL> desc dbms_space.unused_space
    ERROR:
    ORA-04043: 对象 dbms_space.unused_space 不存在
    这个怎么办  
    谢谢 请教大哥教我这类问题解决的方法
    我很菜的 谢谢   
      

  3.   

    我用的system用户额。是不是那个还要自己建
    高手 请详细指教 谢谢
      

  4.   

    问题补充 主要是想解决上面的编译错误
    以下代码是可以编译的 我想请大家多多帮忙我上面代码有编译错误的原因 
    以及要如何修改
    SQL> create or replace
      2      procedure show_space
      3      ( p_segname in varchar2,
      4        p_owner   in varchar2 default user,
      5        p_type    in varchar2 default 'TABLE' )
      6      as
      7         l_free_blks                 number;
      8         l_total_blocks              number;
      9         l_total_bytes               number;
     10         l_unused_blocks             number;
     11         l_unused_bytes              number;
     12         l_LastUsedExtFileId         number;
     13         l_LastUsedExtBlockId        number;
     14       l_LAST_USED_BLOCK           number;
     15         procedure p( p_label in varchar2, p_num in number )
     16         is
     17         begin
     18             dbms_output.put_line( rpad(p_label,40,'.') ||
     19                                   p_num );
     20         end;
     21     begin
     22         dbms_space.free_blocks
     23         ( segment_owner     => p_owner,
     24           segment_name      => p_segname,
     25           segment_type      => p_type,
     26           freelist_group_id => 0,
     27           free_blks         => l_free_blks );
     28         dbms_space.unused_space
     29         ( segment_owner     => p_owner,
     30           segment_name      => p_segname,
     31           segment_type      => p_type,
     32           total_blocks      => l_total_blocks,
     33           total_bytes       => l_total_bytes,
     34           unused_blocks     => l_unused_blocks,
     35           unused_bytes      => l_unused_bytes,
     36           LAST_USED_EXTENT_FILE_ID => l_LastUsedExtFileId,
     37           LAST_USED_EXTENT_BLOCK_ID => l_LastUsedExtBlockId,
     38           LAST_USED_BLOCK => l_LAST_USED_BLOCK );
     39
     40         p( 'Free Blocks', l_free_blks );
     41         p( 'Total Blocks', l_total_blocks );
     42         p( 'Total Bytes', l_total_bytes );
     43         p( 'Unused Blocks', l_unused_blocks );
     44         p( 'Unused Bytes', l_unused_bytes );
     45         p( 'Last Used Ext FileId', l_LastUsedExtFileId );
     46         p( 'Last Used Ext BlockId', l_LastUsedExtBlockId );
     47         p( 'Last Used Block', l_LAST_USED_BLOCK );
     48  end;
     49  /过程已创建。
      

  5.   

    40   LAST_USED_EXTENT_FILR_ID=>l_LastUsedExtFileId 中参数写错了,应该为 LAST_USED_EXTENT_FILE_ID