`
yangzb
  • 浏览: 3464875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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复制表数据的两种用法

    NULL 博文链接:https://wodeguozili.iteye.com/blog/2151906

    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;或者: 代码...

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

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

    oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法

    今天小编就为大家分享一篇关于oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    《SQL必知必会》书本所需的表结构和表数据,适用Oracle数据库

    《SQL必知必会》书本配套的查询语句所需要的表结构的创建和数据的插入,适用Oracle数据库,解压后为一个名为create.txt和一个名为populate.txt的文本文件,将内容复制到SQL窗口执行即可创建表和插入数据。

    Oracle数据库实战:一键执行批量将横表转纵表(横向表转纵向表)

    3、使用Oracle存储过程实现横表转纵表结构,无需繁琐的手动操作,一键执行,适合处理大批量数据转换任务,极大提升数据处理效率。 4、资源中提供了自己验证需要的业务数据、数据库表DDL脚本,可验证学习。 5、本内容...

    Oracle 10g应用指导

    在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的脚本以及在线重新定义表结构的方法做了详细讲解。第6章 PL/SQL程序设计。介绍了PL/SQL中常用的函数、异常处理等...

    Oracle表操作

    复制表 复制表结构 表数据 不同用的表 个别字段转移

    Sqlserver转Oracle工具

    连接sqlserver数据库后选择相应的数据库-数据表以及目标数据库(目前只有oracle),可以将sqlserver转换成oracle数据,有两种方式,点击转换sql按钮,可以生成sql...第二种是连接oracle数据,直接同步表结构或者表数据

    Oralce数据导入到Sqlite的java实现

    将oracle表中相同表结构的内容导入到sqlite中。实现类型的自动替换,包括CLOB大字段转换为String类型。只需更改参数就可实现数据库间数据的导入。

    OracleGoldenGate在Windows平台的双向数据传输配置及其测试

    6.12 目标数据库可以把数据、表结构的修过同步到源数据库服务器上 42 第7章 备注: 44 7.1 Oracle官网的下载地址 44 7.2 GoldenGate的GLOBALS配置文件内容 44 7.3 GoldenGate的eiex01配置文件内容 44 7.4 GoldenGate...

    Oracle11g从入门到精通2

    6.2.2 表结构设计 6.2.3 表的创建 6.2.4 修改表结构 6.3 索引 6.3.1 索引的概念 6.3.2 创建索引 6.3.3 删除索引 6.4 视图 6.4.1 视图的概念 6.4.2 创建视图 6.4.3 视图更改 6.4.4 删除视图 ...

    Oracle中用一张表的字段更新另一张表的字段

     首先,将数据复制到Excel;(假设称测试库的表为A–含有数据)  然后,在开发库中建立和表A同结构的表B;(这里为了导入数据的简单,我对表B的结构进行了改造,只有两个字段)  图 表B的数据  再利用PL...

    Oracle常用script

    2、建一个和a表结构一样的空表 3、察看数据库的大小,和空间使用情况 4、查看现有回滚段及其状态 5、查看数据文件放置的路径 6、显示当前连接用户 7、把SQL*Plus当计算器 8、连接字符串 9、查询当前日期 10...

    不同数据库表结构复制1

    创建一个mysql数据连接mysql40,注意设置编码成utf 工具-向导-复制多表向导 选择从db41复制到mysql40 选择要复制的表添加进来 随便给jo

    Oracle数据库管理员技术指南

    3.3.4 分开导出转储文件、数据表空间、 回退段和联机重做日志文件 3.3.5 最小化检查点 3.3.6 单独创建索引 3.3.7 设置大的初始化参数 SORT_AREA _SIZE 3.3.8 使用大的导入缓冲区 3.3.9 最小化数据库提交次数 ...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    同样在“父级”结构中,数据库有四种数据,他们分别是数据、索引、系统和临时表空间位置。你或许能看到所有的和数据库文件相关的数据都放在一个路径,或者分区里,所有的索引也是在一个路径下,同样系统和临时表空间...

    Oracle9i数据库系统概述.pdf

    逻辑结构与物理结构的对应关系如图所示 9 数据库 表空间 段 区 数据块 数据文件 操作系统物理块 逻辑 物理 10 1、 表空间(tablespace) 表空间是一个逻辑存储单元,Oracle将数据 库所有数据文件所占的磁盘空间划分...

Global site tag (gtag.js) - Google Analytics