Oracle中的储存过程问题。

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:12:00
储存过程代码:
create or replace procedure p
is
begin
truncate table dd;
end;
为什么创建不了??
有此表dd,并且dd中有数据.而且单独执行truncate table dd;
可以成功. 好像在begin和end中间任何的drop,delete,truncate。这些语句都不可以。怎么回事。

要这样:如果数据不是真的很巨大,还是用delete dd吧;
create or replace procedure p
is
begin
execute immediate 'truncate table dd';
end;

你的权限够吗 你有创建procedure的权限吗 有truncate的权限吗

权限问题

在存储过程当中,如果使用ddl语言的话,必须使用动态sql,
然后execute immediate...来执行

在过程当中,也不能直接使用select语句