Procedure中创建Materialized View
SQL=1:
PROCEDURE Create_Materialize_View(table_name varchar2) IS
createStr varchar(1000);
BEGIN
dbms_output.put_line(table_name);
createStr := '
CREATE MATERIALIZED VIEW FMV_' ||
table_name || '
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
FOR UPDATE
AS
SELECT * FROM ' || table_name ||
'@xxxxxxxxx';
Dbms_Output.put_line(SQLCODE || SQLERRM);
execute immediate createStr;
commit;
exception
when others then
Dbms_Output.put_line(SQLCODE || SQLERRM);
END;
当我执行是报权限不足但是把其中的执行部分拿出来
SQL-2:
CREATE MATERIALIZED VIEW FMV_' ||
table_name || '
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
FOR UPDATE
AS
SELECT * FROM ' || table_name ||
'@xxxxxxxxx
执行却没有问题
如果要在Procedure中创建Materialized View必须添加以下权限(SQL-2 执行却不需要以下权限)
--grant CREATE ANY MATERIALIZED VIEW to svarpt;grant create job to svarpt;
grant create evaluation context to svarpt; -- create chain要的权限
grant create rule set to svarpt; -- create chain要的权限
grant create rule to svarpt; 请各位大侠指教。
SQL=1:
PROCEDURE Create_Materialize_View(table_name varchar2) IS
createStr varchar(1000);
BEGIN
dbms_output.put_line(table_name);
createStr := '
CREATE MATERIALIZED VIEW FMV_' ||
table_name || '
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
FOR UPDATE
AS
SELECT * FROM ' || table_name ||
'@xxxxxxxxx';
Dbms_Output.put_line(SQLCODE || SQLERRM);
execute immediate createStr;
commit;
exception
when others then
Dbms_Output.put_line(SQLCODE || SQLERRM);
END;
当我执行是报权限不足但是把其中的执行部分拿出来
SQL-2:
CREATE MATERIALIZED VIEW FMV_' ||
table_name || '
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
FOR UPDATE
AS
SELECT * FROM ' || table_name ||
'@xxxxxxxxx
执行却没有问题
如果要在Procedure中创建Materialized View必须添加以下权限(SQL-2 执行却不需要以下权限)
--grant CREATE ANY MATERIALIZED VIEW to svarpt;grant create job to svarpt;
grant create evaluation context to svarpt; -- create chain要的权限
grant create rule set to svarpt; -- create chain要的权限
grant create rule to svarpt; 请各位大侠指教。
解决方案 »
- 如何修改wmsys.wm_concat 函数返回字符的数量上限
- 时间段查询语句
- HP-UX 下如何刪除oracle10g
- 送分100分:一台服务器上是否可以有ORACLE的多个数据库名,也就是多个不同的数据库
- Oracle数据库一个表中有一个字段是blob类型的,如何将blob中的数据导出成文件?
- 求一条SQL语句的写法。
- 超简单问题,如何使用变量。
- 如何才能在db2中指定时间(比如每天0点)执行一个存储过程呢??
- 数据查询效率优化
- 用access的odbc连接oracle12c不能连接,急求解决
- 使用telnet登录远程的windows版本Oracle 10g 在sqlplus使用edit命令为何无法调出notepad进行编辑?
- ORACLE 过程版本回退
改为
PROCEDURE Create_Materialize_View(table_name varchar2) AUTHID CURRENT_USER