以下编译错误如何解决 请大家多多指教 我很菜菜····
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' 时参数个数或类型错误
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' 时参数个数或类型错误
解决方案 »
- 写存储过程时出的错误:PLS-00201: 必须声明标识符 'INSERT_OBJECT'
- 急!!!!!!关于oracle10g中char类型查询语句
- oracle 批量update 找出不存在的记录
- TIMESTAMP类型---Value Error
- oracle 11g 64位的,有没有什么可视化工具呢?
- 如何编写oracle的存储过程、函数?并在java jsp页面中调用?java 调用oracle function出错!!
- sql server 与oracle 的一条语句??
- Oracle9i 在 RedHatLinux9 应该怎么安装(希望原创贴)?
- 如何中止一个连接?(100分等待)
- sql创建表
- oracle 怎么监控某个存储的更新 自动发邮件通知
- 透明网关的奇怪问题
错误已经很明白了,UNUSED_SPACE参数个数或类型不一致
你什么版本?oracle的版本不一样提供的unused_space参数不一样你可以确认一下参数个数及类型:
sql>desc dbms_space.unused_space
SQL> desc dbms_space.unused_space
ERROR:
ORA-04043: 对象 dbms_space.unused_space 不存在
这个怎么办
谢谢 请教大哥教我这类问题解决的方法
我很菜的 谢谢
高手 请详细指教 谢谢
以下代码是可以编译的 我想请大家多多帮忙我上面代码有编译错误的原因
以及要如何修改
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 /过程已创建。