你为什么要这么做呢?
只能在不同的用户中建立相同表名的表,如:用户A、用户B中都建立tbl表,
A.tbl ,B.tbl

解决方案 »

  1.   

    建议楼主多看看关于scheme的概念
      

  2.   

    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.是否存在一个公共同名 
      

  3.   

    To lianhg: 不同用户我知道的,但不行,不能存在多个用户的,因为我相同表名的表可能有很多个,并且彼此之间可能有数据交互的,这是业务的要求,我不可能在应用系统中对这些用户逐一登录。
    To isaacchang:scheme是什么,哪有资料?我是在请教有没有可行的办法。
      

  4.   

    有哪位仁兄采用过oracle做过财务软件或进销存软件,一定会面临“帐套”的问题吧,请问你们是如何解决的,请不吝赐教!(SqlServer很容易,重个数据库就行了。)
      

  5.   

    按照你的引用方法是不对的,而只能是user_name.table_name的形式;
    现在的相同表名的用户名是同一个吗?
    表是否已建好?
      

  6.   

    对你的需求还是不太明白,不知道partition table对你有没有用?
      

  7.   

    看来你对与oracle的方案管理没有理解
    就是按照不同用户来区别数据库对象的
    所以支持lianhg(lianhg)的做法
      

  8.   

    你可以建不同的表名,
    然后建一个关于用户和表的描述表(UserName,tablename)。程序访问时通过描述表确定需要访问的表。
      

  9.   

    to zgh2003:我还没建表,建立不同的表名是可以的,但应用系统控制起来比较麻烦。
      

  10.   

    按照你的思路,要想更好的控制这些相同的表,
    只能以不同的对象来区分了,而这个不同的对象也就是不同的用户名,
    所以建议建立不同的用户名,在不同的用户名中建立相同结构的表。
    然后建立一个可以控制这些表的超级用户(只需赋予它控制这些表的相应权限即可)。
    当这个超级用户登录应用系统后,对表进行操作时,给这个用户一个选择,
    这个用户选择支出操作时,那么建立用户A的连接,对用户A的Table1进行操作;
    这个用户选择收入操作时,那么建立用户B的连接,对用户B的Table1进行操作。