我现在有一台机子能访问另外一个系统的oracle数据库,但是这个用户只能查询几张表的数据权限,然后我要把这几张表的数据拷贝到另外一台机子的另外一个系统oracle的数据库,该怎么实现呢?要命令式的还有就是要定时(一个月)拷贝一次,确保这两个数据库的这几张表的数据基本同步

解决方案 »

  1.   

    你要在unix或者linux主机上实现么?
    可以用copy from把下面的语句写到一个shell脚本中,然后把这个shell脚本,用后台的crontab配置上,每个月执行一次,脚本内容:(例从数据库2拷贝到数据库1)
    #!/bin/sh
    sqlplus -L /nolog <<- EOSQL >> ./copyfrom.log 2>&1
    connet username1/passwd1@db1
    set echo off
    set linesize 300
    set heading off
    set pagesize 0
    copy from username1/passwd1@db1 to username2/passwd2@db2 insert table2 using select * from table1;
    exit
    EOSQL--执行的时候,具体信息就会被记录在copyfrom.log中。
      

  2.   

    我在xp下做。如果用户只有查询视图数据权限是不能copy from 的吧
      

  3.   

    这个我还真不知道。
    用insert into db1.table1....select * from db2.table1,这样能实现么?另外,如果是XP下定时处理的话,可以把insert into的语句写到存储过程里,然后把存储过程添加到schedule job里。
      

  4.   

    XP下的话用Database links做处理,先要保证都能连通访问,能执行读数据、写数据的操作,然后写个存储过程或者是jobs就行了,建议写一个存储过程,用jobs来定时执行!
      

  5.   


    后面的写个存储过程或者jobs能说的详细点谢谢