想从远程oracle7小型机上取数据到本地(oracle9i),在本机system用户下建数据库链路,
(sj为事先建好的服务名)
create database link ora7test connect to z1 identified by 123 using 'sj'
显示ora-00988 缺少或无效口令连接另一用户则可创建链接,但不可以访问远程表
create database link ora7test connect to z2 identified by zzz using 'sj'
select * from sjfs@ora7test
01002:fetch out of sequence
02063:紧接着line(源于ora7test)两用户用pl/sql developer 都可正常登录远程
查看用户属性,z1是connect,resource角色,z2是connect,dba角色请问
1.以上是什么原因,有何解决办法?
2.从远程取数据到本地数据库还有什么更好办法?

解决方案 »

  1.   

    1.可能没有在tnsnames.ora配置sj
    2.sjfs改为user.sjfs试试,user为sjfs的创建者
      

  2.   

    Oracle 9i不能跨版本链接到Oracle 7,需要通过Oracle 8中转。
    即:先把Oracle 7的表数据复制到Oracle 8,再复制到Oracle 9i。
    的确很麻烦,但是Oracle软件就这样。另外,Oracle 8到Oracle 10g没有该问题。
      

  3.   

    1.好像oracle 9i与oracle7是有些许兼容性问题
    第一个用户创建链路时,密码要加双引号,可创建成功
    create database link ora7test connect to z1 identified by "123" using 'sj' 
    2.pl/sql developer工具是通过其它方式连接数据库的
    3.如果oracle仅仅是在后台存储数据用,前台用开发程序的,可以通过ODBC等方式连接远程数据库