oracle一个动态sql问题

--这是我的存储过程:

create or replace procedure pro_drop
is
    sql_str varchar2(1000):='';
begin
    for v_cat in (select table_name from cat where table_type='TABLE')loop
       dbms_output.put_line(v_cat.table_name);
       sql_str:='drop table '||v_cat.table_name||';';
       dbms_output.put_line(sql_str);
       execute immediate sql_str;
    end loop;
end;

/

 

--创建成功

set serveroutput on;

 

begin
  pro_drop;
end;

/

 

 

--报错

ORA-00933: SQL 命令未正确结束
ORA-06512: 在 "ZSY.PRO_DROP", line 10
ORA-06512: 在 line 2

 

请问是什么原因

 

 

'drop table '||v_cat.table_name||';';
把分号去掉试试