最新更新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);
同一个用户复制的话可以用
create table 新表 as select * from 旧表 数据一起复制
create table 新表 as select * from 旧表 where 1=2 空表
不同用户复制的话可以用
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
分享到:
相关推荐
此工具功能是将oracle数据库中的数据迁移到mysql数据库,可以直接连接到两个目标数据库进行热操作,也可以读取oracle导出文件,导入的Mysql库中。
把mysql数据库中的数据导入到oracle数据库中,希望对大家有所帮助
跨库导入数据,用python3脚本查询查oracle库的一张表数据后导入mysql数据库的一张表,大批量数据导入
这个是从一本书上拷贝下的,主要是介绍了oracle常见的数据导入的操作,希望能对各位有所帮助。
oracle的impdp和expdp数据泵导入导出全备数据库-详细笔记文档总结
说明在数据仓库项目中,异构数据如何导入oracle的方法
NULL 博文链接:https://ljm1227134894.iteye.com/blog/1738009
使用Benthic工具,可以快速向oracle中导入数据,测试了下,导入1000条数据,仅需要不到5秒时间。附件为带注册码的工具。 使用时选择对应数据库,填写用户名密码后,选择导入数据,然后选择字段对应关系后即可快速...
一般的做法是直接删除表空间然后imp导入数据,但是我这边的情况是远程有一个web始终连着,为了免得每天还要去启动那个web服务,我就采用了这个做法,只删除表,这样不会断开连接,注意,这个web只是白天在用。...
Oracle 19c 备份恢复-导入导出
此工具功能是将Mysql库中的数据迁移到Oracle中,迁移过程有多种方式可供选择。
不同用户下,数据的导出和导入;oracle数据库,利用plsql操作;解决了没有sequence存在等问题
这是C# 写的数据导入ORACLE数据库 这是C# 写的数据导入ORACLE数据库 这是C# 写的数据导入ORACLE数据库 这是C# 写的数据导入ORACLE数据库
Oracle,11G的导出文件导入到10G库中,用数据泵导出导入
数据库 oracle dmp 导入
oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库
2. 某一个datafile故障或丢失 .................. 3. 某一个tablespace故障 .................. 4. 意外drop table .................. 5. 意外drop user .................. 6. 意外drop tablespace .........
通过数据泵(expdp、impdp)导出Oracle表、库等详细,已经经过验证
oracle 远程计算机导出,导入数据
在实际生产环境下,有时需将超大规模数据(如超过2亿条)导入分区表,但因原表与目的分区表的字段不一致,且用Kettle等转换工具极易失败,而用insert into select t1,t2.. from tab的Oracle SQL方式直接执行将导致...