`

oracle复制表数据,复制表结构

阅读更多

1.不同用户之间的表数据复制 
对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:
insert into B.new(select * from A.old);

如果需要加条件限制,比如复制当天的A.old数据
insert into B.new(select * from A.old where date=GMT); 
蓝色斜线处为选择条件

2.同用户表之间的数据复制 
用户B下有两个表:B.x和B.y,如果需要从表x转移数据到表y,使用用户B登陆sqlpus即可:
insert into 目标表y select * from x where log_id>'3049' -- 复制数据 
注意:要示目标表y必须事先创建好
如insert into bs_log2 select * from bs_log where log_id>'3049'    


3.B.x中个别字段转移到B.y的相同字段 
--如果两个表结构一样
insert into table_name_new select * from table_name_old 
如果两个表结构不一样:
insert into y(字段1,字段2) select 字段1,字段2 from x

4.只复制表结构 加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内容   
create table 用户名.表名 as select * from 用户名.表名 where 1=2
如create table zdsy.bs_log2 as select * from zdsy.bs_log where 1=2

5完全复制表(包括创建表和复制表中的记录)
create table test as select * from bs_log --bs_log是被复制表


6 将多个表数据插入一个表中
insert into 目标表test(字段1。。。字段n) (select 字段1.。。。。字段n) from 表 union all select 字段1.....字段n from 表


=====================================================
oracle和mssql中复制表的比较

库内数据复制
MS SQL Server: 
Insert into 复制表名称 select 语句 (复制表已经存在)
select 字段列表 into 复制表名称 from 表 (复制表不存在)

Oracle :
Insert into 复制表名称 select 语句 (复制表已经存在)
create table 复制表名称 as select 语句 (复制表不存在)

多表更新、删除

一条更新语句是不能更新多张表的,除非使用触发器隐含更新,我这里说的意思是:根据其他表数据更新你要更新的表一般形式:
MS SQL Server 
update ASET 字段1=B表字段表达式,字段2=B表字段表达式from BWHERE 逻辑表达式

Oracle 
update ASET 字段1=(select 字段表达式 from B WHERE ...),字段2=(select 字段表达式 from B WHERE ...) WHERE 逻辑表达式
从以上来看,感觉oracle没有ms sql好,主要原因:假如A需要多个字段更新,MS_SQL 语句更简练你知道刚学数据库的人怎么做上面这件事情

吗,他们使用游标一条一条的处理

====导入==导出===========
(1)导出
exp ff/ff@orcl file='d:ff.dmp' tables=customers direct=y
使用exp 输出。输入的为需要备份的用户表的账号和密码,根据提示一直点回车就OK 结束后将会出现一个ff.DMP文件,此文件为备份数据。
导出时可以选择导出:1.整个数据库(需具备dba权限);2.用户(包括表、视图和其它);3.表(只包含表,不导出视图);

(2)导入
create user ly identified by pw default tablespace users quota 10M on users; 
创建新用户 用户名为ly 密码为pw 默认表空间为此空间,配额为10M
grant connect,resource,dba to ly;
赋予ly权限(1.连接;2.资源;3.dba权限,必须具备才能执行导入!)
grant create session,create table,create view,unlimited tablespaces to ly; 
赋予ly其它常用权限(1.登陆到服务器,2.创建表,3.创建视图,4.无限表空间)
imp ly/ly@ORCL fromuser=ff touser=ly file='d:ff.dmp' constraints=n
使用 imp 输入。输入需要导入的用户的用户名和密码 然后点回车,根据提示一直到再次要求你输入用户名的地方。

=================

sql_server不同数据库间复制表

不同数据库表结构 和数据的复制 : 
目标数据库不存在要导入的表时: 
example: 
xuexiao为目标数据库,teaching为源数据库,dbo.course_list已经存在于teaching,想在没有此表的xuexiao库中复制一个用下面的语句完成

: 
select * into xuexiao.dbo.course_list from teaching.dbo.course_list 

不同数据库之间复制表的数据的方法

当表目标表存在时: 
insert into 目的数据库..表 select * from 源数据库..表

当目标表不存在时: 
select * into 目的数据库..表 from 源数据库..表 
=================================================
如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表:

  1、只复制表结构的sql
  create table b as select * from a where 1<>1

  2、即复制表结构又复制表中数据的sql
  create table b as select * from a

  3、复制表的制定字段的sql
  create table b as select row_id,name,age from a where 1<>1//前提是row_id,name,age都是a表的列

  4、复制表的指定字段及这些指定字段的数据的sql
  create table b as select row_id,name,age from a

  以上语句虽然能够很容易的根据a表结构复制创建b表,但是a表的索引等却复制不了,需要在b中手动建立。

  5、insert into 会将查询结果保存到已经存在的表中
  insert into t2(column1, column2, ....) select column1, column2, .... from t1

 

 

1、获得单个表和索引DDL语句的方法: 

----------------------------------------------------------------------- 

set   heading   off; 

set   echo   off; 

Set   pages   999; 

set   long   90000; 

  

spool   get_single.sql 

select   dbms_metadata.get_ddl( 'TABLE ', 'SZT_PQSO2 ', 'SHQSYS ')   from   dual; 

select   dbms_metadata.get_ddl( 'INDEX ', 'INDXX_PQZJYW ', 'SHQSYS ')   from   dual; 

spool   off;

分享到:
评论

相关推荐

    Oracle复制表数据的两种用法

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了多种方式来复制表数据。在本文中,我们将深入探讨Oracle复制表数据的两种主要方法,并结合提供的“测试插入.sql”文件,理解其在实际操作中的应用。 首先...

    oracle复制表结构和复制表数据语句分享

    1. 复制表结构及其数据: 代码如下:create table table_name_new as select * from table_name_old2. 只复制表结构: 代码如下:create table table_name_new as select * from table_name_old where 1=2;或者: 代码...

    oracle导出表结构到excel中

    总结起来,将Oracle表结构导出到Excel涉及SQL查询、数据复制以及在Excel中的粘贴操作。对于频繁的操作,可以通过编写VBA宏或使用专业工具来自动化这个过程,提高工作效率。在处理大数据量时,应考虑分批处理和优化...

    oracle数据库导出表结构到WORD文档

    在开发、文档编写或分享数据库设计时,有时我们需要将Oracle表结构导出到更便于阅读和分享的格式,比如Microsoft Word文档。这个过程可以帮助团队成员更好地理解数据库结构,也可以作为备份或审计的参考。 "oracle...

    sqlserver表数据插入到oracle表中的一种实现方式(表结构相同)

    表结构的创建比较简单,但是表的数据量太大,一时也想不到怎么把sqlserver表数据复制到oracle中,于是请教公司主管,用存储过程实现可以查询出所有数据的insert脚本,在oracle库中创建好表,直接把sqlserver中的...

    Oracle复制记录

    其中,数据复制是Oracle数据库中一项非常重要的技术,它涉及到将数据从一个表或数据库复制到另一个表或数据库的过程,以实现数据的批量更新和维护。本文将深入探讨Oracle中的数据复制技术,包括其原理、应用场景以及...

    oracle千万级别数据简单操作

    在Oracle数据库中处理千万级别的数据时,合理的表空间管理和分区策略是非常重要的。以下是从给定的部分内容中提取的关键步骤: 1. **创建表空间**: - 创建了三个表空间:`dinya_space01`、`dinya_space02` 和 `...

    oracle数据库复制软件白皮书

    - 实时数据复制:DDS能够实时捕获源数据库的重做日志(Redo Logs),并将其传递到目标数据库。 - 高可用性和容灾:通过复制,DDS可以创建一个与源数据库实时同步的目标数据库,用于故障切换或灾难恢复。 - 数据...

    oracle高级复制应用实例

    Oracle高级复制是Oracle数据库系统中的一种复杂的数据同步技术,它允许在不同的数据库之间实时或近实时地复制数据。这项技术对于分布式系统、灾难恢复、负载均衡以及数据分发等场景非常有用。以下是对Oracle高级复制...

    Oracle表结构导出工具Excel.rar

    通过这个工具,你可以方便地查看Oracle数据库的表结构,甚至可以对结构进行修改,然后导入到其他环境中,这对于数据库迁移或复制具有很大的帮助。同时,Excel的格式使得数据可视性和可编辑性增强,便于团队协作和...

    导出Oracle表结构

    首先,Oracle表结构包含了数据库中的表格定义,如字段名、数据类型、主键约束、外键约束等信息。这些信息对于数据库的设计、备份、迁移和重构等操作至关重要。导出表结构通常是数据库管理员或开发者在进行项目迁移、...

    SqlServer表结构转Oracle

    "SqlServer表结构转Oracle"是一个专注于帮助用户将SQL Server的表结构转换为Oracle数据库系统的工具。这个工具的主要目标是确保在不丢失任何重要信息的情况下,实现数据库结构的平滑过渡。 首先,我们来详细了解SQL...

    Oracle高级复制数据调研报告

    Oracle高级复制技术是一种用于在分布式数据库环境中同步和管理数据的方法,它允许用户在多个数据库之间复制数据,确保数据的一致性和可用性。本调研报告主要关注Oracle中的高级复制功能,特别是物化视图...

    基于Oracle复制的针对结构化数据的搜索引擎功能的实现.pdf

    《基于Oracle复制的针对结构化数据的搜索引擎功能的实现》 在信息技术领域,数据库管理和搜索引擎技术是两个重要的组成部分。本文主要探讨如何利用Oracle数据库的复制功能来实现对结构化数据的搜索引擎功能,使得...

    oracle普通表转化为分区表的方法

    在线重定义是一种在不影响用户访问的情况下,改变表结构的方法。以下是将普通表转化为分区表的步骤: 1. **确认表是否适合分区**: 使用`DBMS_REDEFINITION.CAN_REDEF_TABLE`函数检查表`EMP`是否可以进行重定义。...

    oracle数据表导出为word文档

    在Oracle数据库中,数据表是存储数据的主要结构,由一系列行和列组成,每一行代表一个实体,每一列代表实体的一个属性。要将这些数据表导出,我们需要一个中间工具来完成转换。 描述中提到的“工具”通常指的是SQL...

    oracle数据容灾复制技术

    - **支持多实例复制**:DSG RealSync技术可以支持Oracle RAC(Real Application Clusters)和OPS(Oracle Parallel Server)环境下的数据复制。 - **优势**:在集群环境中保持数据的高度一致性,提高系统的可用性和...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    【知识点详解】 ...总之,将DB2中的BLOB数据复制到Oracle涉及多个步骤,包括利用WII的联邦功能、添加标志字段以及定制更新策略。通过这些策略,可以有效地克服非直接支持LOB的数据库之间的数据迁移问题。

    mysql-oracle数据同步

    3. **数据库复制服务**:Oracle数据库提供GoldenGate,它可以实现异构数据库间的实时数据复制。MySQL也有类似的InnoDB Replication,但跨数据库平台需借助第三方工具。 4. **使用中间件**:例如阿里云DataHub、...

Global site tag (gtag.js) - Google Analytics