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

超级简单的代码 下面这个错在哪里?
SQL code
begin
alter table lee_client_test100 drop column city
end;


------解决方案--------------------
少了分号,另外不需要begin end的啊
------解决方案--------------------
语法没错,只是不应该放在块中执行
------解决方案--------------------
块中的ddl语句必须用动态sql
------解决方案--------------------
探讨
引用:
语法没错,只是不应该放在块中执行

单独执行是可以。为什么不能放在块中执行呢?

------解决方案--------------------
块中执行ddl要加execute immediate
begin
execute immediate 'alter table lee_client_test100 drop column city';
end;
/

------解决方案--------------------
要放到begin 。。。end;中必须使用execute immediate 'alter ....';
探讨
引用:
语法没错,只是不应该放在块中执行

单独执行是可以。为什么不能放在块中执行呢?