我有一個需要訪問多個數據庫的PL/SQL例程;我的開發環境是帶有Toad的Eclipse XE &。我已授予的其他模式(在這種情況下CORE.SAMPLE)select權限給用戶(在這種情況下,樣本),這樣的查詢,如:PLSQL訪問不同的架構
SELECT count(*) from core.sample;
在運行時爲用戶作品樣本就好了。不過我再有一個包的程序這樣:
CREATE OR REPLACE PACKAGE BODY CORE_SEARCH
AS
FUNCTION search_barcode (barcode IN VARCHAR2)
RETURN BOOLEAN
IS
num_lines INT;
BEGIN
SELECT COUNT (*)
INTO num_lines
FROM CORE.SAMPLE s
WHERE s.barcode = barcode;
RETURN num_lines > 0;
END;
END;
/
我使用的蟾蜍和蟾蜍抱怨CORE.SAMPLE不可用,當我嘗試編譯它在Oracle數據庫(在樣本模式)它不起作用。我得到臭名昭着的'PL/SQL:ORA-00942:表或視圖不存在',但我知道SAMPLES用戶可以訪問core.sample,因爲原始SQL語句可以工作,所以爲什麼不存儲這個存儲過程。這是我如何調用存儲過程來測試:
begin
CORE_SEARCH.SEARCH_BARCODE('test');
end;
再次,這是運行誰有權對CORE.SAMPLE表的SELECT權限樣本用戶。
有人可以請幫助,爲什麼發生這種情況;謝謝。
尼爾
您是如何將您的core.sample表上的選擇授予樣本用戶的?是直接授予還是授予角色,然後授予樣本用戶? – Boneist
有趣的是,我最初授予了一個在簡單的sql語句中不起作用的角色,所以我直接授予它並使用簡單的sql語句。 –
你可以嘗試創建同義詞並檢查它是否適合你。 –