日期:2014-05-17  浏览次数:20758 次

关于一个存储过程的问题 捉鸡啊
我建的一个存储过程用来creat视图 和update 表 但执行的时候报错
在行 1 上开始执行命令时出错:
execute updateranklist
错误报告:
ORA-00911: 无效字符
ORA-06512: 在 "SYSTEM.UPDATERANKLIST", line 4
ORA-06512: 在 line 1
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
  letters and numbers. $#_ are also allowed after the first
  character. Identifiers enclosed by doublequotes may contain
  any character other than a doublequote. Alternative quotes
  (q'#...#') cannot use spaces, tabs, or carriage returns as
  delimiters. For all other contexts, consult the SQL Language
  Reference Manual.
*Action:
~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~
procedure的定义如下
create or replace
procedure updateranklist
is
begin
execute immediate'
create or replace view ranklist (user_nickname,user_time) as
select nickname,lasttime from appuser where lasttime>0 order by lasttime desc;
update appuser set lasttime=0';
end;




纠结了好长时间,,求大神指导

------解决方案--------------------
SQL code

--try
create or replace
procedure updateranklist
is
begin
execute immediate'create or replace view ranklist (user_nickname,user_time) as
select nickname,lasttime from appuser where lasttime>0 order by lasttime desc';
execute immediate 'update appuser set lasttime=0';
end;
/

exec updateranklist;