有关truncate table的故事,三千,竹子,按钮,高手进来看一看
为什么会出错!错误怎么看,我到现在还是不会看错误提示是什么意思.
SQL> begin
2 truncate table ta;
3 end;
4 /
truncate table ta;
*
ERROR 位于第 2 行:
ORA-06550: 第 2 行, 第 10 列:
PLS-00103: 出现符号 "TABLE"在需要下列之一时?
:=.(@%;
符号 ":=在 "TABLE" 继续之前已插入。
SQL> truncate table ta;
表已截掉。
SQL>
问题点数:50、回复次数:5Top
1 楼jewellery(大傻)回复于 2001-11-07 09:25:53 得分 10
begin
execute immediate 'truncate table ta';
end;
/
Top
2 楼KingSunSha(弱水三千)回复于 2001-11-07 09:35:42 得分 10
TRUNCATE不同于DELETE, TRUNCATE一个表后会自动COMMIT, 在PL/SQL块中不能用默认COMMIT的SQL语句,比如CREATE/ALTER TABLE之类的DDL.Top
3 楼zhuzhichao(竹之草)回复于 2001-11-07 09:36:17 得分 10
在PL/SQL塊中不能有顯式提交的DDL語句.Top
4 楼flowerofwind(现实很残酷)回复于 2001-11-07 09:52:11 得分 10
在sqlplus中,你只需要直接truncate table 不要写在pl/sql块中,如竹大虾所讲
pl/sql块中不能有显示提交的ddlTop
5 楼ykliu1(river)回复于 2001-11-07 11:07:39 得分 10
同意jewellery的意见。
在PL/SQL中不能直接使用DDL语句,需要用EXECUTE IMMEDIATE 'DdlString' 或者DBMS_SQL等程序包来实现,在前台如果使用的是DP2000,还可以用FORMS_DDL()内建过程来实现。Top




