想要在通过查询acct_credit表,插入另外一个表user_info_oplog1.acct_credit在user1用户下,user_info_oplog表在user2用户下
2.xulie.nextval是个序列,同样是user2下面的
3.对 序列 和 user_info_oplog表 授予查询,更改权限给user1
4.在user1用户下,建立序列和user_info_oplog同义词
5.登录数据库,使用user1
6.执行如下语句INSERT INTO user_info_oplog (op_seq, dbop_date)
SELECT xulie.nextval, sysdate
FROM acct_credit a;oracle报错:
global_names parameter must be set to TRUE for this operation为什么会发生这种错误?只要改为
INSERT INTO user2.user_info_oplog (op_seq, dbop_date)
SELECT xulie.nextval, sysdate
FROM acct_credit a;
SQL就正常。想要知道为什么?
2.xulie.nextval是个序列,同样是user2下面的
3.对 序列 和 user_info_oplog表 授予查询,更改权限给user1
4.在user1用户下,建立序列和user_info_oplog同义词
5.登录数据库,使用user1
6.执行如下语句INSERT INTO user_info_oplog (op_seq, dbop_date)
SELECT xulie.nextval, sysdate
FROM acct_credit a;oracle报错:
global_names parameter must be set to TRUE for this operation为什么会发生这种错误?只要改为
INSERT INTO user2.user_info_oplog (op_seq, dbop_date)
SELECT xulie.nextval, sysdate
FROM acct_credit a;
SQL就正常。想要知道为什么?
解决方案 »
- oracle菜鸟提问存储过程的问题,总是编译不过。。。
- SOS:数据库oracle
- 怎样使用ORACLE10.2G的DBMS_crypto包或是透明加密方法加密数据
- 菜鸟,关于命令提示符进入oracle,无法输入密码,在线等
- 检索oracle数据里所有表
- 字符串替换函数
- Oracle10g安装过程中,产品特定的先决条件检查?DHCP
- char varchar2 nchar nvarchar2有什么区别?
- update HR_DEGREE set id = ( select SEQ_HR_DEGREE_ID.nextval from dual );的问题
- 一张表中分别建多个索引与建一个包含多个字段的索引,哪种性能优?为什么?
- execute immediate 执行出错。
- 下面二个过程占用锁资源多,还是 基本上没有区别
1,一个用户要对另一个用户下的表进行dml操作,必须要有操作权限。2,如果想用insert into tablename的方式来进行操作的话,必须建tablename的同义词。否则就需要insert into user2.tablename的形式来操作。
4.在user1用户下,建立序列和user_info_oplog同义词
已经做了这个工作
[TEST@ora10gr1#2009-12-08/08:30:52] SQL>select
2 * from tab;TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
T1 TABLE[TEST@ora10gr1#2009-12-08/08:31:04] SQL>create sequence seq1;Sequence created.[TEST@ora10gr1#2009-12-08/08:31:49] SQL>grant select on seq1 to test01;Grant succeeded.[TEST@ora10gr1#2009-12-08/08:32:41] SQL>grant all on t1 to test01;Grant succeeded.
[TEST01@ora10gr1#2009-12-08/08:32:43] SQL>create synonym t1 for test.t1;Synonym created.[TEST01@ora10gr1#2009-12-08/08:33:20] SQL>create synonym seq1 for test.seq1;Synonym created.[TEST01@ora10gr1#2009-12-08/08:34:16] SQL>create table t2 as select * from t1;Table created.[TEST01@ora10gr1#2009-12-08/08:36:17] SQL>insert into t1 select seq1.nextval,'a' from t2;1 row created.
[SYS@ora10gr1#2009-12-08/08:34:46] SQL>show parameter global_NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size string
global_names boolean FALSE
我的 parameter global_name 是true
难道必须更改这个吗?
我见的是公共同义词。
而且也授权限。不过不知道是用户还是角色。直接在pl/sql执行就会报错
哦,我的这边也是false.不好意思。我再试试
------------------------------------ ----------- ------------------------------
global_names boolean FALSE
SQL>这个参数通常是默认的是false,通常不需要修改,在创建数据库链接的时候,如果你有特殊需求需要改动
不加public,就像8楼那样创建的是私有同义词
访问公共同义词使用的是public的权限,不是用户自身的权限