Oracle中出現(xiàn)無(wú)效對(duì)象,就是因?yàn)樵趧?chuàng)建函數(shù)或存儲(chǔ)過(guò)程等,里邊的內(nèi)容書(shū)寫(xiě)不正確導(dǎo)致。如果要重新編譯,需要先修正錯(cuò)誤,然后編譯。
目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、秭歸網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
工具:Oracle 10g、PL/SQL
步驟:
1、在PL/SQL中打開(kāi)出現(xiàn)編譯錯(cuò)誤的函數(shù)或存儲(chǔ)過(guò)程,這里以存儲(chǔ)過(guò)程為例。
2、右鍵點(diǎn)擊該存儲(chǔ)過(guò)程,選擇“編輯”。
3、根據(jù)錯(cuò)誤提示,找到錯(cuò)誤,并修改錯(cuò)誤。
4、改正錯(cuò)誤后,點(diǎn)擊左上方的“齒輪”狀按鈕。
5、運(yùn)行成功后,則該存儲(chǔ)過(guò)程就會(huì)變?yōu)榫幾g成功的狀態(tài)。
你好,希望我的回答對(duì)你有所幫助。
因?yàn)槟闼鶆?chuàng)建的三個(gè)視圖都依賴于同一個(gè)表userinfo,當(dāng)你修改了原有表的表結(jié)構(gòu)時(shí)不會(huì)出現(xiàn)三個(gè)視圖都畫(huà)紅叉的錯(cuò)誤,因?yàn)閍lter語(yǔ)句是DDL語(yǔ)句,已經(jīng)自動(dòng)提交了,所以影響了視圖中的表結(jié)構(gòu),此時(shí)視圖本身并沒(méi)有被修改,而其所依賴的表已經(jīng)修改;而在修改視圖后,視圖所依賴的表已經(jīng)被修改,然后再修改視圖,保存后當(dāng)然不會(huì)出錯(cuò)了,你說(shuō)呢?
select x.考生姓名,x.考試批次,x.考試開(kāi)始 數(shù)學(xué)考試開(kāi)始,x.考試結(jié)束 數(shù)學(xué)考試結(jié)束,
x.考場(chǎng) 數(shù)學(xué)考場(chǎng),x.座號(hào) 數(shù)學(xué)座號(hào),
y.考試開(kāi)始 語(yǔ)文考試開(kāi)始,y.考試結(jié)束 語(yǔ)文考試結(jié)束,y.考場(chǎng) 語(yǔ)文考場(chǎng),y.座號(hào) 語(yǔ)文座號(hào)
z.考試開(kāi)始 英語(yǔ)考試開(kāi)始,z.考試結(jié)束 英語(yǔ)考試結(jié)束,z.考場(chǎng) 英語(yǔ)考場(chǎng),z.座號(hào) 英語(yǔ)座號(hào)
from (select 考生姓名,考試批次,考試開(kāi)始,考試結(jié)束,考場(chǎng),座號(hào) from 表 where 學(xué)科='數(shù)學(xué)') x,
(select 考生姓名,考試批次,考試開(kāi)始,考試結(jié)束,考場(chǎng),座號(hào) from 表 where 學(xué)科='語(yǔ)文') y,
(select 考生姓名,考試批次,考試開(kāi)始,考試結(jié)束,考場(chǎng),座號(hào) from 表 where 學(xué)科='英語(yǔ)' ) z
where x.考生姓名=y.考生姓名 and x.考生姓名=z.考生姓名 and
x.考試批次=y.考試批次 and x.考試批次=z.考試批次
order by 1;
你在創(chuàng)建視圖的時(shí)候,是select t.*,而在這個(gè)語(yǔ)法執(zhí)行的時(shí)候,ORACLE會(huì)自動(dòng)的把你的語(yǔ)法解析成詳細(xì)的查詢語(yǔ)法,就和你平時(shí)使用select *查詢一樣,這個(gè)型號(hào)數(shù)據(jù)庫(kù)也是自動(dòng)解析成from后邊表的字段的。所以這個(gè)創(chuàng)建語(yǔ)法,實(shí)際上是解析后的語(yǔ)法,這個(gè)也沒(méi)什么為什么,因?yàn)閷?shí)際你創(chuàng)建視圖的語(yǔ)法,是ORACLE分析你原是語(yǔ)法之后得到的SQL語(yǔ)句創(chuàng)建的。
再用個(gè)存儲(chǔ)過(guò)程把這些步驟全寫(xiě)下來(lái), 寫(xiě)個(gè)job讓他每天晚上定時(shí)執(zhí)行一次
create or replace view 總數(shù)據(jù)視圖 as
select 個(gè)人編號(hào),賬號(hào),卡號(hào),錢包余額,交易類型,交易次數(shù),交易金額,身份,部門,狀態(tài),證件類型,證件號(hào)碼,有效期,卡片類型,流水號(hào),站點(diǎn),交易額,商戶,終端號(hào),到賬時(shí)間,錢包名稱
from 總數(shù)據(jù)
create or replace view 卡戶余額需要數(shù)據(jù)視圖 as
select 個(gè)人編號(hào),賬號(hào),卡號(hào),錢包余額
from 卡戶余額需要數(shù)據(jù)
create or replace view 月消費(fèi)需要數(shù)據(jù)視圖 as
select 交易類型,交易次數(shù),交易金額
from 月消費(fèi)需要數(shù)據(jù)
where 交易日期 between 交易開(kāi)始日期 and 交易結(jié)束日期
。。。。。。。