我很抱歉,如果我问了一个非常基本的问题,但我搜索了这一点,发现没有任何有用的信息。请解释一下Oracle ORA-00942
代表什么?
发布于 2014-02-12 05:54:37
来自甲骨文:
SQL*Loader-00942:分区字符串不是表字符串的一部分原因:指定的分区不是指定表操作的一部分:无
发布于 2014-02-12 06:05:56
SQLCODE
是oracle变量,在整个会话中都是可见的,只要在Oracle中执行语句,它的值就会被修改。如果sql语句执行后没有错误,则Oracle将其值设置为0。对于所有其他错误状态,存储一个从-20000到-1不等的嵌套值。
如果编写SQLCODE=-00942
,则基本上是在执行特定语句后检查存储在SQLCODE
中的值是否为-00942 (即ORA-00942: table或view不存在)。如果返回的SQLCODE
为负值,并且我们可以根据返回的SQLCODE
处理异常部分,则Oracle将抛出异常。
发布于 2014-02-12 10:39:46
ORA-00942:表或视图不存在。
这并不一定意味着所讨论的表或视图不存在!这个错误通常是由于用户试图访问他们没有适当权限的资源--这并不是因为表实际上不存在,只是用户没有以他们想要的方式访问它的权限!
登录为sysadmin,并验证它是否存在-如果它存在,GRANT SELECT
(UPDATE
.对你的用户来说,不管什么都行,然后它就开始工作了。
一个示例显示了这里:
GRANT SELECT, INSERT, UPDATE, DELETE ON suppliers TO smithj;
如果您发现经常这样做,则应该查看Oracle角色工具,它允许您在一条语句中向用户组有效地执行多个权限分配。
也就是说,您可以指定HR部门访问salary
表,但不包括其他部门--在该表上创建人力资源角色和GRANT SELECT
给任何具有HR角色的人--比在临时基础上对个人进行GRANT
表访问容易得多!这是解释这里。
https://dba.stackexchange.com/questions/58720
复制相似问题