急!高手帮忙,菜鸟级关于oracle中同名表的使用问题!!在线等待... 你为什么要这么做呢?只能在不同的用户中建立相同表名的表,如:用户A、用户B中都建立tbl表,A.tbl ,B.tbl 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议楼主多看看关于scheme的概念 oracle中对象命名问题在一个命名空间中,不能有有相同名字的对象1.对于SCHEMA对象: 1.1同一用户的TABLES、VIEWS、SEQUENCES、PRIVATE SYNONYMS、STAND_ALONE PROCEDURES、STAND_ALONE FUNCTIONS、PACKAGES、SNAPSHOTS在一个namespace中 1.2同一个用户的INDEXES、CONSTRAINTS、CLUSTERS、DATABASE TRIGGERS、PRIVATE DATABASE LINKS在一个namespace中 2.对于非NONSCHEMA对象: 2.1整个数据库的USER ROLES、PUBLIC SYNONYMS、PUBLIC DATABASE LINKS在一个namespace中 2.2整个数据库的TABLESPACES、ROLLBACK SEGMENTS、PROFILES在一个namespace中参考: Oracle8 SQL Reference,Realease 8.0 在口岸系统中 PUB_PARA用户存在CTA_ERR表、同时PUB_CHK用户也有CTA_ERR表,并建立一个PUBLIC SYNONYM 也叫CTA_ERR,程序以PUB_PARA用户登陆数据库,访问CTA_ERR,数据库,那么数据库如何决定使用那个表,规则如下: 1.是否在当前用户下存在该表 2.是否在当前用户下存在该视图 3.是否存在一个表或视图的私有同名 4.是否存在一个公共同名 To lianhg: 不同用户我知道的,但不行,不能存在多个用户的,因为我相同表名的表可能有很多个,并且彼此之间可能有数据交互的,这是业务的要求,我不可能在应用系统中对这些用户逐一登录。To isaacchang:scheme是什么,哪有资料?我是在请教有没有可行的办法。 有哪位仁兄采用过oracle做过财务软件或进销存软件,一定会面临“帐套”的问题吧,请问你们是如何解决的,请不吝赐教!(SqlServer很容易,重个数据库就行了。) 按照你的引用方法是不对的,而只能是user_name.table_name的形式;现在的相同表名的用户名是同一个吗?表是否已建好? 对你的需求还是不太明白,不知道partition table对你有没有用? 看来你对与oracle的方案管理没有理解就是按照不同用户来区别数据库对象的所以支持lianhg(lianhg)的做法 你可以建不同的表名,然后建一个关于用户和表的描述表(UserName,tablename)。程序访问时通过描述表确定需要访问的表。 to zgh2003:我还没建表,建立不同的表名是可以的,但应用系统控制起来比较麻烦。 按照你的思路,要想更好的控制这些相同的表,只能以不同的对象来区分了,而这个不同的对象也就是不同的用户名,所以建议建立不同的用户名,在不同的用户名中建立相同结构的表。然后建立一个可以控制这些表的超级用户(只需赋予它控制这些表的相应权限即可)。当这个超级用户登录应用系统后,对表进行操作时,给这个用户一个选择,这个用户选择支出操作时,那么建立用户A的连接,对用户A的Table1进行操作;这个用户选择收入操作时,那么建立用户B的连接,对用户B的Table1进行操作。 在一台服务器上,如何部署多个oracle库,而且服务器性能还不降低,有什么技术没有? 请问下PL/SQL 里面的 表a.id (+)= 表b.main_id 是什么意思啊 occi exception 求一个日志系统的存储过程 监听器问题!!! 怎样创建一个schema? 自定义数据类型的转换 proc问题 oracle的logminer能远程操作吗 ORA-00054,资源正忙深入求解 我是新手,我想问问题.... 表空间压缩问题!
在一个命名空间中,不能有有相同名字的对象
1.对于SCHEMA对象:
1.1同一用户的TABLES、VIEWS、SEQUENCES、PRIVATE SYNONYMS、STAND_ALONE PROCEDURES、STAND_ALONE FUNCTIONS、PACKAGES、SNAPSHOTS在一个namespace中
1.2同一个用户的INDEXES、CONSTRAINTS、CLUSTERS、DATABASE TRIGGERS、PRIVATE DATABASE LINKS在一个namespace中 2.对于非NONSCHEMA对象:
2.1整个数据库的USER ROLES、PUBLIC SYNONYMS、PUBLIC DATABASE LINKS在一个namespace中
2.2整个数据库的TABLESPACES、ROLLBACK SEGMENTS、PROFILES在一个namespace中
参考:
Oracle8 SQL Reference,Realease 8.0 在口岸系统中
PUB_PARA用户存在CTA_ERR表、同时PUB_CHK用户也有CTA_ERR表,并建立一个PUBLIC SYNONYM 也叫CTA_ERR,程序以PUB_PARA用户登陆数据库,访问CTA_ERR,数据库,那么数据库如何决定使用那个表,规则如下:
1.是否在当前用户下存在该表
2.是否在当前用户下存在该视图
3.是否存在一个表或视图的私有同名
4.是否存在一个公共同名
To isaacchang:scheme是什么,哪有资料?我是在请教有没有可行的办法。
现在的相同表名的用户名是同一个吗?
表是否已建好?
就是按照不同用户来区别数据库对象的
所以支持lianhg(lianhg)的做法
然后建一个关于用户和表的描述表(UserName,tablename)。程序访问时通过描述表确定需要访问的表。
只能以不同的对象来区分了,而这个不同的对象也就是不同的用户名,
所以建议建立不同的用户名,在不同的用户名中建立相同结构的表。
然后建立一个可以控制这些表的超级用户(只需赋予它控制这些表的相应权限即可)。
当这个超级用户登录应用系统后,对表进行操作时,给这个用户一个选择,
这个用户选择支出操作时,那么建立用户A的连接,对用户A的Table1进行操作;
这个用户选择收入操作时,那么建立用户B的连接,对用户B的Table1进行操作。