2013-03-21 64 views
2

我有模式A中的表'測試'和模式B我想運行測試查詢。 因此創建DBlink到A.test和dblink名稱'dbl_test'。TYPE v_id IS table of [email protected]%type;

現在,我能夠查詢作爲

select * from [email protected]_test; 

但是當我嘗試在PLSQL程序塊使用TYPE v_id IS TABLE OF [email protected]_test.id%TYPE;用遊標,它給錯誤,必須聲明並dbl_test是另一個數據庫無法訪問。

當我查詢select語句時,它正在爲什麼不爲TYPE?

回答

1

數據庫鏈接用於鏈接兩個數據庫,而不是模式。

在你的情況,目前還不清楚你是否真的需要數據庫鏈接。你的兩個模式在同一個數據庫中嗎?如果它們是,你只需要給模式B的相關權利,他就可以引用模式A的數據類型。我認爲GRANT SELECT ON A.TEST TO B應該足以引用其數據類型。

編輯:它實際上可以引用遠程數據類型(我不知道!)請參閱@jonearles' answer

+0

感謝您的澄清。如果我想爲遠程數據庫表創建變量類型,我該如何實現這一點。 – user2196111 2013-03-21 17:51:26

+2

@Vincent你實際上可以創建這種依賴關係。雖然這有點不同尋常,但對類型進行硬編碼可能更好。 – 2013-03-21 19:00:32

3

@之前把柱:

TYPE v_id IS TABLE OF [email protected]_test%TYPE; 
+0

+1:學到新東西:) – 2013-03-22 08:25:52

+0

感謝您的幫助。 – user2196111 2013-03-22 20:39:14

相關問題