Oracle:Table 或视图不存在
Oracle : Table or view doesn't exist
我正在尝试使用 Toad 在 Oracle 中创建视图,但出现错误 table 或视图不存在。
但是当我 运行 查询自行执行时,它会成功执行。可能的原因是什么?
CREATE OR REPLACE FORCE VIEW MGR.V_INDEX_PERFORMANCE
(
INDEX_ID ,
INDEX_NAME,
MTD,
YTD
)
BEQUEATH DEFINER
AS
SELECT "INDEX_ID" ,
"INDEX_NAME",
"MTD",
"YTD" from MIS_PERMAL.MV_INDEX_PERFORMANCE
where INDEX_ID in (1045, 2005) AND FIELD_CODE = 'TR' AND CCY_CODE IN ('D', 'USD') order by INDEX_ID, price_date desc;
这是权限,或者更确切地说是授予权限的方式。 MGR 用户有权查询来自角色的基础 table。 Oracle 不允许我们使用来自角色的特权来构建视图或过程。这就是安全模型的工作方式。
解决方案是请求 table 所有者 MIS_PERMAL(或 DBA 等高级用户)将 MV_INDEX_PERFORMAMCE 上的 SELECT 权限直接授予 MGR .
我正在尝试使用 Toad 在 Oracle 中创建视图,但出现错误 table 或视图不存在。
但是当我 运行 查询自行执行时,它会成功执行。可能的原因是什么?
CREATE OR REPLACE FORCE VIEW MGR.V_INDEX_PERFORMANCE
(
INDEX_ID ,
INDEX_NAME,
MTD,
YTD
)
BEQUEATH DEFINER
AS
SELECT "INDEX_ID" ,
"INDEX_NAME",
"MTD",
"YTD" from MIS_PERMAL.MV_INDEX_PERFORMANCE
where INDEX_ID in (1045, 2005) AND FIELD_CODE = 'TR' AND CCY_CODE IN ('D', 'USD') order by INDEX_ID, price_date desc;
这是权限,或者更确切地说是授予权限的方式。 MGR 用户有权查询来自角色的基础 table。 Oracle 不允许我们使用来自角色的特权来构建视图或过程。这就是安全模型的工作方式。
解决方案是请求 table 所有者 MIS_PERMAL(或 DBA 等高级用户)将 MV_INDEX_PERFORMAMCE 上的 SELECT 权限直接授予 MGR .