2013-01-08 43 views
1

我在Oracle中创建了全局临时表,并通过我的应用程序插入数据,当我用“系统”作为用户名连接到数据库时,它对我很好。因为我已经在数据库中用“user1”创建了另外一个用户,并且也给予了这个用户“授予所有”权限。现在,当以“User1”作为用户名连接到数据库并运行应用程序时,数据不会插入到Global临时表中。 但是,当我尝试插入数据从SQL开发人员工具插入。 通过应用程序的系统用户也可以工作,而用user1则不能插入。由于没有那么多的DB专家,我没有得到什么。Oracle全局临时表 - 其他实例的权限

请有任何想法建议我。我也拥有所有特权。提前致谢。

+0

当user1正在进行插入时,您是否收到错误消息?或者只是没有看到数据。请记住,一个用户插入临时表的数据对其他用户不可见。如果应用程序是连接池,数据库可能会认为您有两个不同的用户访问数据。 –

+0

一个会话插入的数据对于任何其他会话都是不可见的,不管其他会话是否针对同一个用户。 –

+0

第一个建议,**停止使用系统**,正如在这里回答一个不相关的问题所解释的:http://asktom.oracle.com/pls/apex/f?p = 100:11:0 ::: :P11_QUESTION_ID:6077226484122 –

回答

0

首先,表必须在SYS或SYSTEM之外的其他模式中。在“User1”上创建它。

其次,您必须确保您从同一张表中选择。在插入时以及在读取时,将该表与模式前缀绑定。

另外请确保您不在使用Sql Developer中的ON COMMIT DELETE ROWSAUTOCOMMIT ON创建的表格中。

+0

感谢您的建议。我通过在所有查询中将模式放在表格前解决了这个问题。 – Manjunath