• Oracle Copy From命令


    一 用途

    Copy 命令是SQL*Plus命令,可用于在ORACLE数据库、非ORACLE数据库之间数据的传输。

    二 语法结构

    SQL> copy
    
    usage: COPY FROM <db> TO <db> <opt> <table> { (<cols>) } USING <sel>
    
    <db> : database string, e.g., hr/your_password@d:chicago-mktg
    
    <opt> : ONE of the keywords: APPEND, CREATE, INSERT or REPLACE
    
    <table>: name of the destination table
    
    <cols> : a comma-separated list of destination column aliases
    
    <sel> : any valid SQL SELECT statement
    
    A missing FROM or TO clause uses the current SQL*Plus connection.

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

    1 语法说明:

    1)FROM database

    需要Copy数据的数据库,即源数据库,如果忽略该子句,源库默认为正在连接的数据库,如果连接远端数据库,必须指定该子句,不支持SYSDBA或SYSOPER权限进行连接;

    2)TO database

    包含目标表的数据库,即目标库,如果忽略该子句,目标库默认为正在连接的数据库,如果连接远端数据库,必须指定该子句,不支持SYSDBA或SYSOPER权限进行连接;

    3)database

    username[/password]@connect_identifier;

    4)APPEND

    如果目标表存在,将查询的数据行插入目标表,若目标表不存在,创建表并插入数据行;

    5)CREATE

    如果目标表不存在,创建目标表,并插入数据行,如果目标表存在,返回错误;

    6)INSERT

    如果目标表存在,将查询的数据行插入目标表,若目标表不存在,返回错误;

    7)REPLACE

    如果目标表存在,删除表并创建表,插入数据,如果目标表不存在,创建表,插入数据;

    8)destination_table

    目标表;

    9)(column, column, column, ...)

    指定目标表的列名;

    10)USING query

    指定查询语句,决定Copy的行和列;

    2 支持的数据类型

    Copy指令支持下面的数据类型:

    • Char;
    • Date;
    • Long;
    • Number;
    • Varchar2;

    3 参数设置

    Copy命令可以使用如下参数来控制该指令的一些行为,分别是:

    1)Set Long变量

    用于限制Long列的长度,如果列过长,则会截断超过该参数的长度;

    2)Set Arraysize变量

    用于限制每次从数据库获取的数据行数,对应的数据行数组成一个批次;

    3)Set Copycommit变量

    用于设置提交更改至数据库对应的批次数量;

    三 示例

    SQL> set arraysize 5000;
    
    SQL> set copycommit 40;
    
    SQL> copy from scott/scott@orcl to scott/scott@orcl insert scott.t_copy using select *from scott.t_test;
    
    
    
    Array fetch/bind size is 5000. (arraysize is 5000)
    
    Will commit after every 40 array binds. (copycommit is 40)
    
    Maximum long size is 80. (long is 80)
    
    5587968 rows selected from scott@orcl.
    
    5587968 rows inserted into SCOTT.T_COPY.
    
    5587968 rows committed into SCOTT.T_COPY at scott@orcl.

  • 相关阅读:
    Java面向对象XMind
    使用idea插件JRebel热部署的坑
    Mysql小技巧(多行数据合并+模糊查询
    JRebel安装使用
    Shiro(三) 权限管理 假数据
    Shiro(二)通过shiro实现登录 连接数据库+集成Springboot
    Shiro(一)通过shiro实现登录
    poi实现Excel输出
    日志,注解切入点
    获取用户信息
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975611.html
Copyright © 2020-2023  润新知