日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle数据库用户失效对象,Oracle数据库对象失效解决

發(fā)布時(shí)間:2024/9/19 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle数据库用户失效对象,Oracle数据库对象失效解决 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目中開發(fā)使用了VPD,數(shù)據(jù)庫用戶B的對(duì)象的創(chuàng)建依賴于數(shù)據(jù)用戶A,由于用戶A的對(duì)象進(jìn)行DDL、遷移或dump等操作,造成了用戶B的對(duì)象INVALID.應(yīng)用系統(tǒng)的數(shù)據(jù)源使用了用戶B,因此造成應(yīng)用系統(tǒng)出錯(cuò)。

此時(shí)可進(jìn)行如下處理:

1,找到失效的對(duì)象

[sql]

select object_type,object_id,object_name

from user_objects

where status=’INVALID’ order by object_type

2,進(jìn)行判斷后,可以重新編譯這些對(duì)象。

編譯的方法有多種:

1) DBMS_DDL

2.)DBMS_UTILITY

3.)UTL_RECOMP

4)UTLRP.SQL

5)Manually Recompile

最佳方案是手動(dòng)編譯這些對(duì)象,可以參考下面的SQL腳本:

[sql]

Spool recompile.sql

Select ‘a(chǎn)lter ‘object_type’ ‘object_name’ compile;’

From user_objects

Where status <> ‘VALID’

And object_type IN (‘VIEW’,’SYNONYM’,

’PROCEDURE’,’FUNCTION’,

’PACKAGE’,’TRIGGER’);

Spool off

@recompile.sql

Note: VIEW,SYNONYM,PROCEDURE,PACKAGE,FUNCTION,TRIGGER

Spool pkg_body.sql

Select ‘a(chǎn)lter package ‘object_name’ compile body;’

From user_objects

where status <> ‘VALID’

And object_type = ‘PACKAGE BODY’;

Spool off

@pkg_body.sql

Spool undefined.sql

select ‘a(chǎn)lter materizlized view ‘object_name’ compile;’

From user_objects

where status <> ‘VALID’

And object_type =’UNDEFINED’;

Spool off

@undefined.sql

Spool javaclass.sql

Select ‘a(chǎn)lter java class ‘object_name’ resolve;’

from user_objects

where status <> ‘VALID’

And object_type =’JAVA CLASS’;

Spool off

@javaclass.sql

Spool typebody.sql

Select ‘a(chǎn)lter type ‘object_name’ compile body;’

From user_objects

where status <> ‘VALID’

And object_type =’TYPE BODY’;

Spool off

@typebody.sql

Spool public_synonym.sql

Select ‘a(chǎn)lter public synonym ‘object_name’ compile;’

From user_objects

Where status <> ‘VALID’

And owner = ‘PUBLIC’

And object_type = ‘SYNONYM’;

Spool off

@public_synonym.sql

總結(jié)

以上是生活随笔為你收集整理的Oracle数据库用户失效对象,Oracle数据库对象失效解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。