ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL * Plus Copy 命令

SQL * Plus Copy 命令

原创 Linux操作系统 作者:tolywang 时间:2008-07-25 11:13:16 0 删除 编辑
问题2SQL*Plus Copy 命令
问题描述
怎样在SQL*Plus 中实现不同的表之间的数据复制,不论是本地的还是远程
的?
问题分析
在SQL*Plus 中的copy 命令,可以完成远程数据库、本地数据库或Oracle 数据
库与非Oracle 数据库之间的数据复制。其性能与导入/导出相同。
copy 的基本命令格式:
copy {from source_database |to destination_database}
{append|create|insert|replace}destination_table[(column,column,column,...)]
using
其中数据库连接使用如下格式:
username/password\]@connect_identifier
在数据复制时,复制支持的数据类型为:char、date、long、number、varchar2。
原理如图3-9 所示。
图3-9 SQL*Plus Copy 原理图
SQL*Plus Copy 命令可在不同数据库之间,以及同一个数据库内的不同模式
的表之间复制数据。
  ·从远程数据库复制数据到本地数据库。
  ·从本地数据库(默认)复制数据到远程数据库。
  ·从一个远程数据库复制数据到另一个远程数据库。
通常,copy 命令用于Oracle 数据库与非Oracle 数据库之间复制数据。如果在
Oracle 数据库之间复制数据,应该使用create table as 和insert 的SQL 命令。
·对目标表的控制方式有4 种类型:replace、create、insert 和append。
  ·replace 子句指定了被创建的表名。如果目标表已存在,则删除并用包含复制
数据的表替代。若不存在,则创建目标表。
  ·使用create 子句可避免覆盖已存在的表。若目标表已存在,则copy 报告一个
错误;若不存在,则创建目标表。
  ·insert 插入数据到已存在的表。
将查询到的行插入到目标表,如果目标表不存在,copy 返回错误。当使用insert
时,using 子句必须为目标表的每个列选择对应的列。
  ·append 是将查询到的行插入到目标表。如果不存在,则创建目标表并插入。
问题解答
首先应注意的是:1)copy 是SQL*Plus 命令,不是SQL 命令,在语句最后不
必加分号;2)由于多数copy 命令比较长,所以,在分行时每行末尾必须有续行
符(-),最后一行不加。
具体步骤如下。
步骤1:使用using 子句指定一个查询,将其查询结果数据复制到本地数据库
的当前模式下employee 表中。例如:
copy from hr/hrd@renshreplace
employeeusing
select last_name,salaryfrom
emp_details_viewwhere
department_id=30
步骤2:使用create 从一个远程数据库复制数据到本地数据库。
copy from hr/@bostondbcreate
empcopyusing
select*from hr
步骤3:为其他用户复制数据。
copy from hr/hr@dboracreate
jobusing
select*from renbs.jobs
以用户hr 连接到数据库dbora,将renbs 模式的jobs 表复制到当前本地数据库。
步骤4:在同一个数据库中可将一个模式的表复制到另一个模式中。同样必须
指定用户口令和数据库服务名。
copy from hr/password@mydatabaseinsert
employee_copy2-
using select*from employee_copy
步骤5:在同一个远程数据库中复制表,必须是关键字from 和to 中包含相同
用户名和数据库服务名。
copy from hr/password@daliandbto
hr/password@daliandbinsert
employee_copy2-
using select*from employee_copy

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-410093/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14696698