今天开始拿起扔下好几年的PLSQL开始写Oracle的存储过程,但这次用了一些需要动态拼出来的SQL,所以,我打算用动态SQL来执行,以前没有用过,结果试验有问题。
我发现了EXECUTE IMMEDIATE可以直接执行DDL,所以,就用了这个东西,但问题出来了,如果直接执行一个静态的SQL,则没有任何问题。如:
EXECUTE IMMEDIATE 'create table ltf ( ty char(2))'
但是如果后面的DDL是一个动态的SQL,则报错“权限不足”。
我的用户是DBA的权限,我知道需要再分配一些什么权限,于是在网上搜了一下,发现了一个帖子:http://218.94.123.17/viewthread.php?tid=39754
按照帖子中的一位大侠回复的,我执行了grant create table to 我的用户,再执行就可以了。
输出命令:dbms_output.put_line(s);
这里有一篇帖子,都是关于数据库的,可以看看:
http://www.fankai.com/blog.php?userid=7764
很多事情还是和想的不一样!
推荐:《可不可以不勇敢》-范玮琪,很好听的一首歌!
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3327988
|
- 评论人:zackary
2008-07-31 18:32:28
|
|||
需要create any table权限 |
||||
|
- 评论人:王者之剑
2005-10-29 20:34:31
|
|||
我也碰到过 |
||||