oracle怎么给存储过程赋增加表的权限? 5

也就是可以在存储过程中创建表,见网上有这么写的executeimmediate'grantgrantcreatetableto存储过程名';但是不能执行,是错的... 也就是可以在存储过程中创建表,见网上有这么写的
execute immediate 'grant grant create table to 存储过程名';
但是不能执行,是错的
展开
 我来答
lijinyu25775
2011-03-21 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:33.7万
展开全部
GRANT说明:

名称
GRANT — 赋予一个用户,一个组或所有用户访问权限
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }

输入
privilege 可能的权限有:
SELECT:访问声明的表/视图的所有列/字段.
INSERT:向声明的表中插入所有列字段.
UPDATE:更新声明的所有列/字段.
DELETE:从声明的表中删除所有行.
RULE: 在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL: 赋予所有权限.

object 赋予权限的对象名.可能的对象是:
* table (表)
* view (视图)
* sequence (序列)
* index (索引)

PUBLIC:
代表是所有用户的简写.

GROUP group:
将要赋予权限的组 group .目前的版本中,组必须是用下面方法显式创建的.

username:
将要赋予权限的用户名.PUBLIC 是代表所有用户的简写.

输出
CHANGE: 如果成功,返回此信息.
ERROR: ChangeAcl: class "object" not found
如果所声明的对象不可用或不可能对声明的组或用户赋予权限.

参考资料: http://hi.baidu.com/xujingood/blog/item/b1df5b4282b2f9179213c64b.html

才驰皓0i5
2011-03-22
知道答主
回答量:6
采纳率:0%
帮助的人:9932
展开全部
没有这样的语法 grant grant create table to 存储过程名;
你可以在存储过程中动态的创建表,execute immediate 'create table xx (x char(10))';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chonglangshou1
2011-03-31 · TA获得超过118个赞
知道小有建树答主
回答量:159
采纳率:50%
帮助的人:109万
展开全部
首先存储过程是不能直接建表的,所以不能赋予它这个权限,这是oracle规定,就好像你规定自己什么时候起床一样;
其次可以同过以上的execute immediate 执行一些储过程是不能直接执行的事,如:创建表
以上回答均个人暂时性观点。如有错误请多原谅!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式