我在做数据迁移,数据进入新数据库时,主键要通过SEQUENCE重新生成,请问获取其他数据库SEQUENCE的值的SQL怎么写?

解决方案 »

  1.   

    select 序列名.currval from dual;
      

  2.   

    select SEQNAME.nextval@XX from dual
    XX表示数据库连接的名称
    如果不知道怎么建数据库连接,搜下oracle dblink
      

  3.   

    创建数据库link
    create public database link dh connect to system identified by www using 'test';上面的dh是你创建的dblink的名称,system,www是连接网络服务名test的用户名和密码。test是你要连接的数据库的网络服务名。对dblink的使用,查询dh数据库中的用户表信息。
    select table_name from user_tables@dh;
      

  4.   

    你们说的我都知道,现在的问题是,A库能查询B库的数据,但是B库不能查询A库的数据。A库是ORACLLE 9i,B库是ORACLE 8。我怀疑是不是版本的问题
      

  5.   

    就是执行的时候报“无法识别的服务名”。
    我准备装个10g,到时候拿9i和10g 验证一下。
      

  6.   

    修改tnsname试试,把service_name改成sid
      

  7.   


    谁说的?  我Oracle8i的客户端照样访问10g的
      

  8.   

    你要互相访问,首先两个库的TNSNAMES.ORA里都要配置访问另一个库的数据库连接符
    然后用这个连接符分别创建dblink