环境: oracle9i  windows xp  mysql-5.0.37    ODBC 5.00.11
两个数据库都在一台计算机上.
1。在ODBC中配置mysqltest,用VB测试连接数据库,查询select * from test.t没有问题。2。
hs\admin下建立文件名initmysqltest.ora内容:
HS_FDS_CONNECT_INFO = mysqltest
HS_FDS_TRACE_LEVEL = 03。
在listener.ora里面填加如下:
    (SID_DESC =
      (SID_NAME = mysqltest)
      (ORACLE_HOME = D:\oracle)
      (PROGRAM = hsodbc)
    )4。
在tnsnames.ora里面填加如下:
mysqltest =
  (DESCRIPTION =
  (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = zhanghuajie)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = mysqltest)
    )
    (HS = ok) 
   )
   
   
5。重起listentnsping mysqltest
……
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = zhanghuajie)(PORT = 1521))) (CONNECT_DATA = (SID = mysqltest)) (HS = ok)
)
OK(20毫秒)说明成功!6。
alter system set global_names=false;CREATE public DATABASE LINK "te"  CONNECT TO "root" IDENTIFIED BY "zhj"  USING 'mysqltest'; 7。----------------出现问题了SQL> select * from "t"@te;
select * from "t"@te
              *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
[Generic Connectivity Using ODBC][MySQL][MyODBC 5.00.11] column count unknown
at this time (SQL State: S1010; SQL Code: 0)
ORA-02063: 紧接着2 lines(源于TE)
我修改了MYSQL数据库root 帐户的密码为其他值,重新登入SQLPLUS后如下:SQL> select * from "t"@te;
select * from "t"@te
                  *
ERROR 位于第 1 行:
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Generic Connectivity Using ODBC][MySQL][MyODBC 5.00.11][MySQL] 1045 Access
denied for user 'root'@'localhost' (using password: YES) (SQL State: 08001; SQL
Code: 1045)
ORA-02063: 紧接着2 lines(源于TE)
说明这个DBLINK是连接到MYSQL数据库了,不然也不会报以上错误。可问题是,为什么在密码正确的情况下我执行select * from "t"@te;会报表不存在呢??
我还执行了以下:
select * from test.t@te;
select * from "test.t"@te;
select * from t@te;都报同样的错误,——表或视图不存在!帮我解决一下………………谢谢啦!!

解决方案 »

  1.   

    确认当前登陆用户和link用户的select权限。
    另外,一般情况下,select * from table,别加双引号.除非再建表的时候,表的名字就是"table"
      

  2.   

    oracle listener还能这么用,强!!
    不会,关注
      

  3.   

    确认当前登陆用户和link用户的select权限。这两个用户都授权了,没有用
    ………………
      

  4.   

    搞定了终于……
    是ODBC驱动的问题,换个3.5的就可以了汗
      

  5.   

    楼主,你有没有发现通过DBLINK查询出的结果不正确?
    比如select count(*) from x; 如果正确结果是零的话,可能通过DBLINK查询的结果是48
    哪位大侠知道怎么解决呢?
      

  6.   

    linux环境
    mysql 5.1.11-beta
    oracle10g
    odbc 3.51.12