`
远去的渡口
  • 浏览: 473572 次
  • 性别: Icon_minigender_2
  • 来自: 上海转北京
社区版块
存档分类
最新评论

Oracle 将一个库的数据导入到另一个库

阅读更多

最新更新2011-9-28号。

最近的项目中遇到了一个棘手的问题,由于许多业务都是放在定时中执行,有一个需求是统计商户或者门店创建的活动效果,在近期的3.5版本做了很大调整,因此在新的统计方式需要兼容历史活动,所以得把所有的活动遍历统计一次。考虑到

上线当天晚上定时会跑得很慢,所以上级决定目前只将2011年5月1号之后创建的活动和5月1号前创建并且上线时仍有更新的活动。5月1号之前的活动等上线后,在一个新库中将数据跑出来,然后导入到线上库。如果线上库已经存在的数据,就不能导入。因为以线上环境的数据为准。今天将2011年1月1号到5月1号之间的活动数据在新库上跑出来了,线上已经存在的数据,是5月1号前创建并且在8月18号上线新版本后仍有更新的活动,这一部分数据不能覆盖,以线上的为准。

 

 

先建立链接,连接到线上的数据库服务器,具体操作如图所示,别名ntow,然后输入用户名,密码

 

在完成这个任务时,做了数据验证。

将一个数据库上的analysis_invest_profit_store表中的数据导入
--到线上数据库的analysis_invest_profit_store表中。要求:线上已经存在
--的数据不可覆盖。 表analysis_invest_profit_store主键
--是marketingid,coupontypeid和storeid组合的主键

-- analysis_invest_profit_store@ntow t 表示线上库
   
--1)第一步,找出线上与本地数据库相同的数据   执行结果为49条     
  select s.*
    from analysis_invest_profit_store      s,
         analysis_invest_profit_store@ntow t
   where s.marketingid = t.marketingid
     and s.coupontypeid = t.coupontypeid
     and s.storeid = t.storeid;
           
     
  --2)找出线上库不存在的数据 
  -- 此语句执行结果是451条 
  --本地新库中analysis_invest_profit_store表中一共有500条,验证数据不缺少
     select s.*
  from analysis_invest_profit_store s
 where not exists (select *
          from analysis_invest_profit_store@ntow t
         where s.marketingid = t.marketingid
           and s.coupontypeid = t.coupontypeid
           and s.storeid = t.storeid);
   

 

验证数据条数是正确的,没有多余也没有缺少,所以就做下一步动作,将线上库不存在的数据导入到线上的数据库。

 --3)将线上库不存在的数据导入到线上表  
insert into analysis_invest_profit_store@ntow t
select s.*
  from analysis_invest_profit_store s
 where not exists (select *
          from analysis_invest_profit_store@ntow t
         where s.marketingid = t.marketingid
           and s.coupontypeid = t.coupontypeid
           and s.storeid = t.storeid);
    

 

 

 

 

整理一下Oracle在项目中常用的基本语句,算是一个小小的总结概要。

1、获得当前时间

select sysdate from dual
2、获得char类型的时间

select to_char(sysdate,'yyyy-MM-dd') as mydate from dual

3、获得精确到秒的时间

select to_char(sysdate,'yyyy-MM-dd HH24:MI:SS') as mydate from dual

 


4、Oracle中用sql语句更改字段类型。
alter table trans_buycoupon_record  rename column buy_num to buy_num1;

alter table trans_buycoupon_record add buy_num number;

update trans_buycoupon_record set buy_num=cast(buy_num1 as number);

alter table trans_buycoupon_record drop column buy_num1;

 

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

(4月21日补充)

 5、A表与B表有关联,A和B都是col这个字段,但是A表中维护有记录B表中则没有,现在要将B表中的col字段的值更新为与A表中的col值一样update prepay_send_record ps set end_date =(select m.end_date from member_prepay_account m where m.merchant_id=ps.merchant_id and ps.customer_id=m.customer_id )  这里要注意的是要找到将要修改的表与数据来源的表的关系。

 

4月12号,先总结到这里,以后持续更新中。

 

8月15号更新:

 

向Oracle表中加新索引:

CREATE   INDEX   IND_CARBNOW_FRAMEID   ON     sms_send_record(marketing_id,biz_type);

 

语法是:

create INDEX 索引名  on  表名(字段名1,字段名2);

 

 

 

Oracle中复制一张表的结构,用sql语句复制一张表结构

同一个用户复制的话可以用

Sql代码 复制代码 

create table 新表 as select * from 旧表     数据一起复制   

 

Sql代码 复制代码 

create table 新表 as select * from 旧表 where 1=2     空表  

 

不同用户复制的话可以用

 

Sql代码 复制代码 

create table B.新表 as select * from A.旧表    

  

copy   from   a/a   to   b/b   create   table   aaa   using   select   *   from   aaa;  

 

 

 6、将一张表的数据,插入到另一张表(Oracle中将数字类型以字符串形式拼接)

insert into yd_person(person_id,person_name,mobile,store_id)
select CONCAT('25010100006',t.mobile), t.name ,t.mobile ,'250101000060001' from yd_person_1209 t 

 

分享到:
评论
2 楼 远去的渡口 2011-09-28  
courage207 写道
   

如此表情为哪般??
1 楼 courage207 2011-09-28  
   

相关推荐

    把mysql数据库中的数据导入到oracle数据库中

    - 当前MySQL数据库的备份文件为`.sql`文件,每个表一个文件,需要将这些文件的数据导入到Oracle数据库中。 #### 二、MySQL数据恢复 为了确保数据的完整性和准确性,首先需要将MySQL的备份文件恢复到一个测试数据库...

    oracle数据导入导出

    - 解释:该命令将 daochu.dmp 文件中 table1 表的数据导入到 TEST 数据库中。 **3. 导入时忽略错误** - 命令示例:`imp aichannel/aichannel@HUST full=y file=d:\data\newsmgnt.dmp ignore=y` - 解释:此命令...

    oracle的impdp和expdp数据泵导入导出全备数据库-详细笔记文档总结

    Oracle 的 IMPDP 和 EXPDP 是两个强大的数据泵工具,用于将 Oracle 数据库中的数据导入或导出到其他数据库或文件中。在本文档中,我们将详细介绍如何使用 IMPDP 和 EXPDP 工具来实现全备数据库的导入和导出。 一、...

    excel导入数据到Oracle数据库

    本文将详细介绍如何将Excel数据导入到Oracle数据库的具体步骤。 #### 二、准备工作 1. **安装PL/SQL Developer**:首先需要安装PL/SQL Developer工具,这是一个功能强大的Oracle数据库开发工具,支持数据导入导出...

    oracle数据导入到Mysq库

    首先,我们来探讨Oracle数据导入到MySQL的原理。数据迁移通常涉及数据抽取、转换和加载(ETL)过程。在本例中,"oracle2mysql"工具可能通过以下步骤工作: 1. **数据抽取**:工具连接到Oracle数据库,通过SQL查询...

    将oracle库数据导入本系统方法

    本文主要探讨的是如何将Oracle数据库中的数据导入到本系统的方法,这对于数据迁移、备份恢复、系统整合等场景至关重要。 首先,Oracle提供多种数据导入工具,其中最常用的是`SQL*Loader`和`Data Pump`(包括`expdp`...

    oracle数据库导入数据以及创建用户

    expdp导出数据到目录对象,而impdp则将这些导出的数据导入到数据库中。 - **SQL INSERT语句**:对于小规模的数据导入,可以使用SQL插入语句一行一行地导入数据。但这种方式效率较低,不适合大量数据。 2. 创建用户...

    oracle 数据导入sybase

    总的来说,通过JAVA和JDBC进行Oracle到Sybase的数据导入是一个涉及多方面技能的任务,包括数据库操作、JAVA编程、数据转换和性能优化等。熟练掌握这些技能,将有助于顺利完成这种复杂的数据迁移项目。

    oracle自动导入数据

    在Oracle数据库管理中,自动导入数据是一项常见的任务,特别是在处理大量结构化数据时,例如...通过合理利用Oracle提供的工具和技术,可以有效地将Excel等外部数据源的数据导入到Oracle数据库中,提升数据管理的效率。

    异构数据导入oracle方法

    在数据仓库项目中,异构数据的导入是一个关键步骤,涉及到不同格式和来源的数据整合到Oracle数据库中。这里我们将详细探讨几种常见的数据导入方法。 1. **TXT格式文档导入Oracle**: TXT文件是最基本的数据格式,...

    从oracle查询数据导入mysql库.py

    跨库导入数据,用python3脚本查询查oracle库的一张表数据后导入mysql数据库的一张表,大批量数据导入

    Oracle10g 数据仓库

    3. **自动存储管理(Automatic Storage Management, ASM)**:ASM是Oracle10g的一个重要特性,它集成了文件系统和卷管理器,简化了存储管理,提高了数据仓库的可扩展性和可靠性。 4. **Real Application Clusters ...

    excel数据导入oracle

    标题“Excel数据导入Oracle”涉及的关键技术点是数据迁移,主要涵盖了两个方面:一是从Excel文件中读取数据,二是将这些数据导入Oracle数据库。在实际应用中,这通常需要编程实现,涉及到Java语言和Oracle数据库的...

    Oracle数据库导入导出工具

    - 数据迁移:当需要将数据从一个Oracle实例迁移到另一个实例时,导入导出工具是关键。 - 数据备份:定期备份数据库以防止数据丢失,确保业务连续性。 - 数据恢复:在系统故障或数据错误时,通过备份数据进行恢复...

    利用Oracle管理服务器将数据导入导出

    在 Windows 系统中,进行数据备份前,需要创建一个操作系统用户(如 oracle_back),并将其添加到 Administrator 和 ora_dba 组。此外,还需在本地安全策略中赋予此用户批处理作业登录的权限,以便在备份过程中使用...

    c#批量导入excel数据到oracle数据库.rar

    本资源包提供了一个实用的解决方案,即使用C#编程语言批量导入Excel数据到Oracle 11G数据库。以下将详细阐述这个过程涉及的关键知识点。 首先,我们要了解C#。C#是由微软开发的一种面向对象的编程语言,广泛应用于...

    oracle数据导入、导出工具

    这通常表示一个网站的名称,可能是一个教程文档或示例数据集。如果这个文件是与Oracle数据导入导出相关的,那么它可能包含了关于如何使用expdp和impdp的步骤、示例脚本,或者是准备导入的测试数据。 在实际操作中,...

    plsql下不同用户数据导入

    4. 在导出数据时,可以选择 Single file 选项,以便将所有对象导出到一个 SQL 脚本文件中。 5. 在导出数据时,可以选择 File per object 选项,以便将每个对象导出到一个特定的文件中。 导出和导入数据的步骤: 1....

    oracle 文本导入工具

    Oracle文本导入工具是一种...通过使用这个工具,用户可以更高效、更可靠地将大量文本数据导入到Oracle数据库中,从而提高工作效率并减少潜在错误。对于需要频繁进行数据导入的团队和组织来说,这样的工具是宝贵的资产。

Global site tag (gtag.js) - Google Analytics