zoukankan      html  css  js  c++  java
  • Oracle数据库间的数据复制

    Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同。

    根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持Copy命令,只是未写入11g的文档里,未来12C不知道还支不支持。

    Copy也有明显的缺点,Copy只支持五种数据类型,Char,Date,Long,Number,Varchar2,8i之后Oracle数据库新增的数据类型都不支持。

    使用方法:

    1.首先确保TNS里记录了源Instance和目标Instance的连接信息;

    2.运行SQL * Plus(无需连接具体的Instance)

    sqlplus /nolog

    3.运行Copy命令

    Copy命令的语法:

    COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]
    USING query

    where database has the following syntax:

    username[/password]@connect_identifier

    Copies data from a query to a table in a local or remote database. COPY supports the following datatypes:

    CHAR

    DATE

    LONG

    NUMBER

    VARCHAR2

    Example:

    1. copy from user1/password1@source_instance to user2/password2@dest_instance create emp2 using select * from emp;  

    上边的命令会从source_instance中把emp数据拷贝到dest_instance中的emp2表。

    数据库内的复制,也可以使用Copy命令,Example:

    1. copy from scott/password@ptian to scott/password@ptian create emp2 using select * from emp;  

    这就有点类似于CREATE TABLE empx AS (SELECT * FROM emp);
    根据Tom的说法,Copy 的效率可能会比CREATE TABLE ... AS ...(数据库间的复制也可以使用Create table...as,通过database Link)差,因为Copy是把数据从一个Instance拷贝到sqlplus,再从sqlplus插入另外一个Instance。

    而CREATE TABLE ... AS ...是把一个数据库的数据直接插入到第二个数据库,所以效率会高一些。

    Copy 命令的四种模式

    * replace子句指定了被创建的表名。如果目标表已存在,则删除并用包含复制数据的表替代。若不存在,则创建目标表。
    * 使用create子句可避免覆盖已存在的表。若目标表已存在,则copy报告一个错误;若不存在,则创建目标表。
    * insert插入数据到已存在的表。将查询到的行插入到目标表,如果目标表不存在,copy返回错误。当使用insert时,using子句必须为目标表的每个列选择对应的列。
    * append是将查询到的行插入到目标表。如果不存在,则创建目标表并插入。

    其他说明

    如果copy命令比较长,可以在分行时每行末尾必须有续行符(-),最后一行不加。

      1. copy from scott/welcome@ptian -  
      2. to scott/welcome@ptian-  
      3. create empy-  
      4. using select * from emp-  
      5. where rownum = 1  
  • 相关阅读:
    字符串匹配——KMP算法(C++)
    数论——Fibonacci数列(C++)
    数据结构——线段树之二(C++)
    数据结构——线段树之一(C++)
    最后的最后
    开始的开始
    10.25模拟 保留道路
    10.25模拟 列车调度
    10.25模拟 三角形
    洛谷 P1093 奖学金
  • 原文地址:https://www.cnblogs.com/zuo-zijing/p/3964594.html
Copyright © 2011-2022 走看看