我现在建立ORACLE与SQLSERVER的连接,前期的工作已做完。
建立连接如下:
create database link test1 connect to sa identified by sa using 'mssql'; 
显示的结果为
create database link TEST1.US.ORACLE.COM
connect to SA
identified by "sa"
using 'mssql';
自动把sa变成大写,测试连接则报错:Link TEST1.US.ORACLE.COM error: ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息: 
[Transparent gateway for MSSQL][Microsoft][ODBC SQL Server Driver][SQL Server]用户 'SA' 登录失败。 (SQL State: 28000; SQL Code: 18456)
ORA-02063: 紧接着2 lines(源于TEST1)在不改变SQLSERVER用户名的情况下,如何做?多谢。

解决方案 »

  1.   

    SQL> create database link test1 connect to sa identified by sa using 'mssql';Database link created.SQL> 
    可以小写,但oracle会自动加上.US.ORACLE.COM
    所以dblink会变成TEST1.US.ORACLE.COM。
      

  2.   

    oracle默认都是大写的,即使你用小写也会变成大写。
    不区分大小写,登录密码你用大写小写都是一样的,呵呵
      

  3.   

    create database link时建议最好就用大写,就像oracle的表名字段,都会变成大写。
      

  4.   

    现在我建立了大写的用户名及密码,连通成功。信息如下:
    Link TEST1.US.ORACLE.COM connected successfully.但是执行语句(对应数据库是pubs)
    select * from authors@test1报错如下:
    ORA-00942: 表或视图不存在
    [Transparent gateway for MSSQL]
    ORA-02063: 紧接着2 lines(源于TEST1)pubs数据库里有authors表,不知道怎么弄了,郁闷啊?
    就差一点点了,谁能告诉我为什么,分不够可以再加。
      

  5.   

    执行
    select * from dual@test1;
    成功,显示信息:
    D
    -
    X
      

  6.   

    SELECT * FROM ALL_TABLES@test1 where TABLE_NAME='authors';
    都显示出数据了,真是晕倒,不知道什么原因。
    为什么select * from authors@test1;就报错呢?
      

  7.   

    你当前登陆的账户有没权限访问authors?
      

  8.   

    >>现在我建立了大写的用户名及密码,连通成功。信息如下:
    >>Link TEST1.US.ORACLE.COM connected successfully.要建立一个同义词, 要不,要这样:select * from [email protected]
      

  9.   

    我现在是这样写,成功了。
    SELECT * FROM "authors"@test1;
      

  10.   

    那就是你那个表的原因,我知道了,你的表明是小写的,mssql表如果是小写名的话,在oracle要加“”才能访问。就是这个原因了。