原文:数据仓库之抽取数据:openrowset函数带bulk操作符的用法 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过openrowset函数带bulk操作符的用法,导入.导出.更新数据. 带bulk操作符的方式相对于其他方式来说,速度更快. 使用方法: 第1种用法: openrowset (     bulk 要…
原文:数据仓库之抽取数据:通过openrowset执行存储过程 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过openrowset函数调用存储过程,但是存储过程中不能带参数. 1.开启即席查询 --修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询…
原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过bcp命令行导入数据.bcp方式相对于其他方式来说,速度更快,是做了优化的. 以下为bcp命令行常用的参数,注意大小写: -c  以char作为存储类型 -w  和-c类似,只有当使用unicode字符集拷贝数据时使用n…
在项目中由于需求,需要返回复杂的数据,需要执行存储过程,但是在DONETCORE2.0中,看官网文档执行的sql的有点操蛋,满足不了需求,就想到了ADO.NET 于是找资料,也没有合适的,就动手自己封装了一个.代码如下: public static class ExtendDbRepository { public static DataSet SqlQuery(this Db db, string spName, params SqlParameter[] paramsters) { SqlC…
1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  3307 MYCAT 1.5 服务部署在宿主机上 MYCAT 192.168.31.207 :8806[SQL执行端口] / 9066[管理端口] 2 应用场景 2.0 MYCAT配置 schema.xml <schema name="TESTDB" checkSQLschema=&quo…
记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare ii integer; begin ii := 1; FOR ii IN 1..1000000 LOOP INSERT INTO test01 (id) VALUES (ii); end LOOP; return true; end; $BODY$ LANGUAGE plpgsql; select *…
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数.那就看下面的两种随机取整数的方法:1.A:select floor(rand()*N) ---生成的数是这样的:12.0 B:select cast( floor(rand()*N) as int) ---生成的数是这样的:12 2.A:select ceiling(rand() * N) ---生成的数是这…
研究了一天mybatis如何执行存储过程,基本了解了ORM的设计思想,在map层面进行对象关系映射有两种思路. 根据不同的业务使用不同的思路: 一.实体类和数据库映射,就是将数据库中的字段和java实体类中的对象对应起来,这是最普遍的做法. 就是这个样子: <resultMap id="BaseResultMap" type="com.kt.model.Funeral" > <id column="applyid" proper…
Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带参数的新增用户存储过程: CREATE PROCEDURE [dbo].[p_Insert_User] ), ) AS BEGIN INSERT INTO tb_User VALUES(NEWID(),@name,@UserPwd) END 2>不带参数的查询用户信息存储过程: CREATE PROCE…
Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssql 的实现 NEWID() 跟rand()  1 5. newid()与rand()的区别 2 6. NEWID() 2 7. 参考 2 1. 应用场景 并发测试 2. 随机抽取数据原理 原理是 循环所有的ID/记录,附加随机函数字段,然后排序as 这个字段.. 3. 常用的实现方法:::数据库随机…
oracle job 定时执行 存储过程   一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式 SQL> create table JOB_TEST(a date); Table created SQL> commit; Commit complete 2,创建一个存储过程 bb 作用是往pig表中插入数据 SQL> create or replace procedure JOB_PRO_TEST as 2  begin 3  insert int…
定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来.       首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一条数据 实现方案:     1.通过 oracle 中 dbms_job 完成存储过程的定时调用     2.在存储过程中完成相应的逻辑操作 实现步骤:   1.创建一个测试表 create table test(dTime date);     2.创建一个存储过程 create or repla…
需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的内容包括:PowerState,MemoryMB,NumCPU,HDNAME,CapacityKB,唯一键是Cluster,VMName,HDNAME 解决思路: 1 首先通过VMware vSphere PowerCLI工具每天抓取这些需要同步的数据 2 通过sqlload将数据放入BMC Clo…
public int UpdateRegdate(tj_book_patient regdatejson) { int temp; SqlParameter[] ps = new SqlParameter[]{ //实体类的字段和存储过程的参数对齐 new SqlParameter("@reg_date",regdatejson.reg_date), new SqlParameter("@pat_code",regdatejson.pat_code), new Sq…
首先在数据库创建存储过程: create proc [dbo].[usp_GetPersonById] @Id int as begin select Id,Name from Person where Id=@Id end XML映射文件中定义参数集合: <parameterMaps> <!--注意:parameterMap中的参数个数和顺序要和存储过程中的一致--> <parameterMap id="GetPersonByIdProc"> &l…
先说说的场景 老项目,因为服务器升级了mysql数据库版本,从5.7.13升到8.0.15 然而代码里面有直连数据的访问,通过执行存储过程来查询数据的业务,此时抛出异常   Table 'mysql.proc' doesn't exist 排查,用 Navicat mysql 工具看, 8.0.15 的数据库的确没有了这个表,以前7点几版本有这个表... 经过几方努力   排查出因为数据层引用的 MySql.Data.dll 这个插件版本过低导致的,所以更新官网最新的  MySql.Data.d…
ActionUrl c = new ActionUrl() { ActionName="test", RequestUrl="/123/123", SubTime=DateTime.Now }; //增 using (EntityContext db = new EntityContext()) { /*方法1*/ db.ActionUrls.Add(c); db.SaveChanges(); /*方法2*/ db.Set<ActionUrl>().At…
使用存储的优点 1.执行更快.直接写sql脚本会有个解析编译的过程. 2.修改方便.当业务改变时,只需要改存储过程,不需要修改C#代码 3.传递Sql脚本数据相对更小 缺点: 1.使用存储过程,数据库移植性差 2.把业务放到了存储过程里,相当于把处理业务的压力放到了数据库里面. 存储过程的脚本: --分页原理:越过多少条,取多少条 --创建一个存储过程 create proc P_LoadPageData --参数 @pageIndex int, @pageSize int, @total in…
记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题,如下图: 点击库存或者点击销售,查询数据很慢,有的将近几十秒,查询数据用的是存储过程,在数据库中执行存储过程,查询数据是很快的,速度非常理想,1秒不到,但是c#程序中调用就要很久. 百度了很多,后来这上面的那篇文章中找到了原因所在: 原因分析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执…
关于大数据T+1执行流程 前提: 搭建好大数据环境(hadoop hive hbase sqoop zookeeper oozie hue) 1.将所有数据库的数据汇总到hive (这里有三种数据源 ORACLE  MYSQL SEQSERVER) 全量数据抽取示例: ORACLE(注意表名必须大写!!!) sqoop import --connect jdbc:oracle:thin:@//10.11.22.33:1521/LPDR.china.com.hh --username root -…
kettle抽取数据发送邮件Linux调度 #1.进入kettle安装目录 然后执行sqoop.sh文件启动kettlecd /app/pdi-ce-7.1.0.0-12/data-integration./spoon.sh & #2.新建脚本文件 /app/pdi-ce-7.1.0.0-12/time/iCounter_time.sh start #!/bin/bashcd /app/pdi-ce-7.1.0.0-12/data-integration#需要导入jdk路径export KETT…
写在前面 需求 1.备份系统日志表T_S_LOG, 按照操作时间字段OPERATETIME, 将每天的日志增量备份到另一张表. 思路 1.创建一张数据结构完全相同的表T_S_LOG_BAK作为备份表 2.查出T_S_LOG中需要备份的数据 3.将数据赋给游标变量 4.遍历游标将数据逐条插入T_S_LOG_BAK 5.创建无参存储过程将游标的这部分操作作为存储过程主体执行 6.创建定时任务定时执行该存储过程 操作环境 Oracle11g T_S_LOG日志表(部分数据) -- ----------…
  从监控工具DPA中发现一个数据库(SQL Server 2008 R2)的等待事件突然彪增,下钻分析发现数据库执行存储过程sp_MailItemResultSets时,引起了非常严重的等待(High Wait),而主要的等待事件为PREEMPTIVE_OS_WAITFORSINGLEOBJEC. 如下截图所示: 查询正在执行的SQL,发现会话正在执行下面SQL(存储过程sp_MailItemResultSets中的一个SQL语句),等待事件为ASYNC_NETWORK_IO.   USE m…
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成. 不过,各种ORM总有让人吐槽的地方... 比如,我之前在SqlServer上写测试,搞封装,没有任何问题.CURD.批量操作.存储过程.事物等. 可是以转到Oracle上,就出问题了[喂~不是说好的支持Oracle的么] 在写Dapper+Oracle单元测试的前期,是没有…
使用Kettle在不同的数据库抽取数据时,有时会出现中文乱码问题:其解决方案如下: 1.查看数据库的字符集是否是UTF-8(最常用的字符集) 2.如果数据库设置正确仍然存在中文乱码,则可能是因为有的客户端数据库默认的编码集不是UTF-8,我们只需要在输出时对输出的数据库进行编码配置.我的数据库是MySql,下面是解决图示: a.我的转换图 b.打开表输出-->数据库连接后的"编辑"-->Advanced,在下方的空白处输入:set names utf8;,设置数据库客户端的…
Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中使用:call为SQL命令,没有限制. 2. 存储过程没有参数时,exec可以直接跟过程名(可以省略()),但call则必须带上().…
以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param> /// <returns>执行存储过程的返回值</return…
下面的方法是我在实际开发中摸索出来的,可以在很大程度上简化调用存储过程的代码. 首先来看一下C#调用存储过程的一般过程:1.打开数据库连接SqlConnection:2.生成一个SqlCommand:3.向命令对象填充参数:4.执行存储过程:5.关闭连接:6.其他操作. 我这里讲的主要是简化第3步操作,最终在调用存储过程的时候只需要传递存储过程的名字和相应的参数值.调用示例如下:        dbAccess.run("p_am_deleteFile", new object[]{L…
//定时任务,结转 . //表名 fys_sch_lvyou2 ,存储过程名:fys_sch_lvyou2_carrayover //无参调用:{call insertLine} //有参调用:{call fys_sch_lvyou2_carrayover(?,?) 然后传递参数即可 public void startCarrayOver(){ //获取要结转的时间:当前月(2016年09月30日)的上月,2016年08月 Calendar c = Calendar.getInstance();…
DB:11.2.0.3.0OS:oracle-linux 5.7 建表语句:create table YOON.YOON_HIS(  c_id              NUMBER not null,  YOON_code      VARCHAR2(30),  create_time       DATE,  update_time       DATE not null,)partition by range (CREATE_TIME)(  partition PART_01 values…