建立儲存過程編譯無效物件
有時候我們需要自己編寫程式碼實現對無效物件的編譯,以下儲存過程可以完成該工作。
具有DBA角色的使用者在編譯和執行該儲存過程前需要顯示授予以下許可權:
grant select on dba_objects to dis;
grant execute on dbms_registry_sys to dis;
grant execute on utl_recomp to dis;
以下是編譯無效物件的儲存過程:
create or replace procedure recompile is
-- 編譯無效物件
type tab_char is table of varchar2(32767) index by binary_integer;
commands tab_char;
table_exists number;
begin
sys.utl_recomp.recomp_parallel(0);
select count(*)
into table_exists
from dba_objects
where owner = 'SYS'
and object_name = 'UTLIRP_ENABLED_FUNC_INDEXES'
and object_type = 'TABLE';
if (table_exists > 0) then
execute immediate q'+
select 'alter index "' || u.name || '"."' || o.name || '" enable'
from utlirp_enabled_func_indexes e, ind$ i, obj$ o, user$ u
where e.obj# = i.obj# and i.obj# = o.obj# and o.owner# = u.user#
and bitand(i.flags, 1024) != 0+' bulk
collect
into commands;
if (commands.count() > 0) then
for i in 1 .. commands.count() loop
execute immediate commands(i);
end loop;
end if;
execute immediate 'drop table utlirp_enabled_func_indexes';
end if;
sys.dbms_registry_sys.validate_components;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2141525/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- laravel建立一個儲存過程Laravel儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- mysql無法建立儲存過程問題 ERROR 1307 (HY000)MySql儲存過程Error
- 6.5. 常用物件——6.5.6. 儲存過程物件儲存過程
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- [JVM]物件建立過程JVM物件
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 編譯過程編譯
- 儲存過程與儲存函式儲存過程儲存函式
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 造數儲存過程儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- JAVA儲存過程(轉)Java儲存過程
- MySQL之儲存過程MySql儲存過程
- oracle的儲存過程Oracle儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- PHP 編譯引數儲存PHP編譯
- 編譯連結過程編譯
- C++ 編譯過程C++編譯
- 編譯過程簡介編譯
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- mongo 儲存過程詳解Go儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- SQL 分頁儲存過程SQL儲存過程