为什么grant create view to 'BIZDATA1';在下面的procedure中编译不过去
create or replace procedure pro_aaa (vew_name varchar2) as
dysql varchar2(800);
begin
dysql := 'create or replace view aaa_lijm
as select a.s_wage_id ,
SUM(CASE WHEN a.s_item_code = 1001 then a.n_item_value else 0 end) as item1001,
SUM(CASE WHEN a.s_item_code = 1002 then a.n_item_value else 0 end) as item1002,
SUM(CASE WHEN a.s_item_code = 1003 then a.n_item_value else 0 end) as item1003,
SUM(CASE WHEN a.s_item_code = 1004 then a.n_item_value else 0 end) as item1004,
SUM(CASE WHEN a.s_item_code = 1005 then a.n_item_value else 0 end) as item1005,
SUM(CASE WHEN a.s_item_code = 1006 then a.n_item_value else 0 end) as item1006
from WA_DATA a group by a.s_wage_id';
grant create view to 'BIZDATA1';
execute immediate dysql;
end;报告错误:
Compilation errors for PROCEDURE BIZDATA1.PRO_AAAError: PLS-00103: 出现符号 "GRANT"在需要下列之一时:
begindeclareendexception
exitforgotoifloopmodnullpragmaraisereturnselectupdatewhile
<an identifier><a double-quoted delimited-identifier>
<a bind variable><<closecurrentdeletefetchlockinsertopen
rollbacksavepointsetsqlexecutecommitforall
<a single-quoted SQL string>
Line: 13
Text: grant create view to 'BIZDATA1';Error: Hint: Parameter 'vew_name' is declared but never used in 'pro_aaa'
Line: 1
Text: create or replace procedure pro_aaa (vew_name varchar2) as
create or replace procedure pro_aaa (vew_name varchar2) as
dysql varchar2(800);
begin
dysql := 'create or replace view aaa_lijm
as select a.s_wage_id ,
SUM(CASE WHEN a.s_item_code = 1001 then a.n_item_value else 0 end) as item1001,
SUM(CASE WHEN a.s_item_code = 1002 then a.n_item_value else 0 end) as item1002,
SUM(CASE WHEN a.s_item_code = 1003 then a.n_item_value else 0 end) as item1003,
SUM(CASE WHEN a.s_item_code = 1004 then a.n_item_value else 0 end) as item1004,
SUM(CASE WHEN a.s_item_code = 1005 then a.n_item_value else 0 end) as item1005,
SUM(CASE WHEN a.s_item_code = 1006 then a.n_item_value else 0 end) as item1006
from WA_DATA a group by a.s_wage_id';
grant create view to 'BIZDATA1';
execute immediate dysql;
end;报告错误:
Compilation errors for PROCEDURE BIZDATA1.PRO_AAAError: PLS-00103: 出现符号 "GRANT"在需要下列之一时:
begindeclareendexception
exitforgotoifloopmodnullpragmaraisereturnselectupdatewhile
<an identifier><a double-quoted delimited-identifier>
<a bind variable><<closecurrentdeletefetchlockinsertopen
rollbacksavepointsetsqlexecutecommitforall
<a single-quoted SQL string>
Line: 13
Text: grant create view to 'BIZDATA1';Error: Hint: Parameter 'vew_name' is declared but never used in 'pro_aaa'
Line: 1
Text: create or replace procedure pro_aaa (vew_name varchar2) as
解决方案 »
- 求redhat5.4+64位oracle10g的安装文档
- Oracle_Home变量设置问题
- oracle 的游标支持联合查询吗?
- STAR_TRANSFORMATION_ENABLED如何设置
- 请问如何获取和分析oracle的日志
- 请问如何把 ORALCE 10g 的数据库中的表, 全部导入到 sqlserver 中
- 自动增加的标识列
- 怎么在sql*plus中以normal身份登陆?
- 各位请问,DBA密码问题??
- 数据字典all_tables中num_rows字段
- 请教:不同库的相同表结构之间数据事实拷贝,急急急!!!!!!!!!!
- 执行下面的procedure时提示我“ORA-01031:权限不足”,应该如何改写下面的procedure呢?
除非使用动态语句,大哥
http://community.csdn.net/Expert/topic/5139/5139053.xml?temp=.3845484