EXECUTE SP_ADDLINKEDSERVER  
@SERVER='CDMA', 
@SRVPRODUCT='Oracle', 
@Provider='MSDAORA', 
@DataSrc='CDMA' --用户映射 
EXEC SP_ADDLINKEDSRVLOGIN 'CDMA','FALSE','sa','cdmauser','cdmaoptr' 
--允许RPC调用,以执行存储过程;  
exec  sp_serveroption  N'CDMA',  N'rpc',  N'true' 语句A 
SELECT * FROM CDMA..CDMAUSER.BTSSTATUS_OSS701 
能正常远行 
语句B 
SELECT * FROM CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP 
出错 
消息 117,级别 15,状态 1,第 1 行 
对象 名称 'CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP’包含的前缀超出了最大限值。最多只能有 3 个。 这是为什么,该怎样解决? 在ORACLE中,SELECT * FROM GISDATAUSER.T20091226三亚市天Rp 是正常的 

解决方案 »

  1.   

    SELECT * FROM [CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP]或者
    SELECT * FROM CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP  T 
      

  2.   

    加别名也不行呀,
    消息 117,级别 15,状态 1,第 1 行
    对象 名称 'CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP' 包含的前缀超出了最大限值。最多只能有 3 个
      

  3.   


    OPENQUERY 試驗下呢?
    不行就不知道了- -
      

  4.   

    SELECT * FROM CDMA..CDMAUSER.GISDATAUSER.T20091226三亚市天RP 改为SELECT * FROM CDMA..GISDATAUSER.T20091226三亚市天RP
    就能正常因为 GISDATAUSER就是他的用户名