truncate table xxx不能用在存储过程里面吗?

coldljy 2003-09-23 05:20:39
如果可以,要怎么写?
PL/SQL Developer中出的错误提示:
Error: PLS-00103: 出现符号 "TABLE"在需要下列之一时:
:=.(@%;
符号 ":=在 "TABLE" 继续之前已插入。
Line: 4
Text: truncate table RESM.RESM_SHOULDACCOUNT_DEBT_V;
...全文
639 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dajian2000 2003-09-23
  • 打赏
  • 举报
回复
要执行动态语句
execute immediate 比DBMS_UTILITY 好!

楼上的方法不推荐!
yangqingdelphi 2003-09-23
  • 打赏
  • 举报
回复
动态sql另法.
BEGIN
DBMS_UTILITY.EXEC_DDL_STATEMENT
('truncate table table_name');
END;
/
beckhambobo 2003-09-23
  • 打赏
  • 举报
回复
请楼主注意,在过程使用truncate table table_name
要有此权限 grant drop any table to 当前用户
LGQDUCKY 2003-09-23
  • 打赏
  • 举报
回复
存储过程里,不能直接用DDL语句。需要用動態sql执行
ORACLE8 以上可以用 execute immediate

execute immediate ‘truncate table table_name ....’;
jiezhi 2003-09-23
  • 打赏
  • 举报
回复
必須使用動態sql:
execute immediate 'truncate ...';
三杯倒 2003-09-23
  • 打赏
  • 举报
回复
sql_text := 'truncate table aa';

execute immediate sql_text;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧