如何在創建函式中 跨表空間查詢
1.創建函式的表空間在FXZH的表空間
2.游標中需要查詢的表在strongwater的表空間中
3.在 fxzh的表空間中直接執行 sql :select * from strongwater.st_pptn_r是可以得到查詢結果的,但是在函式中是無法讀取到strongwater下的表的
如圖:


uj5u.com熱心網友回復:
你這不是表空間的問題吧……這是PL/SQL代碼呼叫者權限和定義者權限的問題,試著在as關鍵字前加上AUTHID CURRENT_USER。
uj5u.com熱心網友回復:
我這個好像不太一樣,有兩個表空間uj5u.com熱心網友回復:
我這個好像不太一樣,有兩個表空間uj5u.com熱心網友回復:
fxzh 和 strongwater 分別是兩個表空間的用戶uj5u.com熱心網友回復:
其實如果權限控制比較完善,那么其實應該做的是讓p01_data_t和st_pptn_r兩張表所屬的用戶給你的函式所屬用戶顯示授予表級權限:grant select on p01_data
和你表空間沒關系,就是權限的問題。
uj5u.com熱心網友回復:
這個不是跨表空間,而是跨用戶(schema)如果要程序或函式中查詢其他用戶(schema)的資料, 要顯式的授權;
grant select on tname to user1;
uj5u.com熱心網友回復:
跨用戶權限問題,你在as關鍵字前加上AUTHID CURRENT_USER即可。uj5u.com熱心網友回復:
跨用戶,用grant試試uj5u.com熱心網友回復:
跨用戶的話可以使用創建同義詞,然后進行執行就可以了轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82533.html
標籤:開發
下一篇:配置Myeclipse
