为什么在存储过程中不能使用“TRUNCATE TABLE FOTB0BT”?

longlong8088 2004-06-29 12:47:47
为什么在存储过程中不能使用“TRUNCATE TABLE FOTB0BT”?
...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
prettylife 2004-06-29
  • 打赏
  • 举报
回复
这个例子保你成功!这种语句要用动态游标DBMS_SQL

CREATE OR REPLACE PROCEDURE Test1 IS
v_Sql VARCHAR2(200);
Cursor_create VARCHAR2(100);
Result NUMBER;
BEGIN
v_Sql := 'TRUNCATE TABLE FOTB0BT';

cursor_create := dbms_sql.open_cursor;
DBMS_SQL.PARSE(cursor_create, v_SQL,dbms_sql.native);
Result := dbms_sql.EXECUTE(cursor_create);
DBMS_SQL.close_cursor(cursor_create);

END Test1;
sunspoter 2004-06-29
  • 打赏
  • 举报
回复
执行动态sql语句,请使用 execute immediate 'truncate table tablename'; 另外用户需要有一定的权限
jiezhi 2004-06-29
  • 打赏
  • 举报
回复
这个dml语句,你是要动态sql的话就可以了:
execute immediate 'truncate ...';

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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