SSIS中对空值的处理

1、准备

1.1 建立目标数据库UserA:注意sex的默认值是“男”;

USE [YZSY]
GO
/****** Object:  Table [dbo].[TUser]    Script Date: 2017/2/12 16:41:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TUserA](
    [name] [nvarchar](50) NULL,
    [sex] [nvarchar](50) NULL
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[TUserA] ADD  CONSTRAINT [DF_TUser_sex]  DEFAULT (N‘男‘) FOR [sex]
GO

1.2 构建源数据库User:且插入一个NULL值!

 insert into [YZSY].[dbo].[TUser] values(‘张三‘,NULL)

1.3 源数据库中真实数据

2、通过SSIS进行数据抽取

2.1  源编辑器设置:使用数据访问方式为:表或视图        

2.2 目标编辑器设置:

2.2.1 使用数据访问模式:表或视图

2.2.2 执行包任务,抽取数据:此时我们看到抽取的数据结果源表中数据一样,但是,不要忘记了,目标数据表中对性别是有默认值的;尽管,源表张三的性别是NULL值(属于数据不完整,或者数据错误),但是我们ETL之后希望将这个问题解决,将张三的性别按照目标数据库的默认的值设置“男”,怎么做?

2.3 目标编辑器设置:

2.3.1 使用数据访问模式:表或视图-快速加载

2.3.2、执行包,查看结果表内容:当然如果我们勾选“保留NULL”;系统还是会将NULL保留的。

注意:使用“表或视图-快速加载”的方式,是对目标数据库进行的设置,对于源数据是没有作用的。

时间: 2024-10-27 12:16:20

SSIS中对空值的处理的相关文章

Java中的空值判断

Java中的空值判断 /** * 答案选项: * A YouHaidong * B 空 * C 编译错误 * D 以上都不对 */ package com.you.model; /** * @author YouHaidong * */ public class NullString { /** * @param args */ public static void main(String[] args) { String i = ""; if(i == i + 1) { System

微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据

开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使用文件形式存储.在国内大量使用 ACCESS 作为 BI 数据源并不多,但是在国外特别是美国使用的还比较多,因为他们的 IT 基础起步比较早.在我的第一个美国的医疗保险项目中,就遇到过大量的 ACCESS 数据源,前后总共有 500 多个 ACCESS 表.而现在从国外一些朋友反馈的情况仍然还有在使

J脚本:去除字符串中的空值 完整版

    <script>         /**         * 去除以','作为分隔符的字符串中的空值,         */         function strChange(str){             return srtChange(str,null);         }                  /**         * 去除字符串中的空值         * str : 要去除空值的字符串         * split: 分隔符(默认为',')    

微软 BI ssis 中的 script task中用代码直接调用 WCF / Webservice

背景: 在普通的C#项目中,可以直接调用 WCF / Webservice: 在微软BI的 ssis中,有 webservice任务组件,也可以直接调用简单的 WCF / Webservice; 偶这边的情况是,后端的 WCF中用的反射,所以在 ssis中的webservice任务组件中,死活不能识别 WCF对应的方法. 所以只能在ssis的 script task组件中,用纯代码的方式来调用WCF服务. 就这样,可能还是有问题:可能会碰到 不能识别 System.ServiceModel节点的

微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来,也是磕磕碰碰的,虽然很能锻炼 SQL 功底,每次都要挣扎一番,溺水的感觉.记得SQL Server 2005 以后就有了 PIVOT 和 UNPIVOT 这两个函数,可以非常方便的实现行转列和列传行的操作,就不再那么挣扎了.后来,在一个 08 项目中,有一位新的女同事在改一个 ETL,发现 SSIS

在SSIS中的不同组件间使用局部临时表

Connetion的属性RetainSameConnection是个boolean值,指定是否保持相同的链接,默认值是false,表示每个component都会单独的使用connection,在component开始时打开connection,在component结束时关闭connection.不同的componet之间使用的是不同的connection. 由于局部临时表的生命周期是在当前连接,在链接关闭时就会终止,临时表就不存在了.在SSIS中不同组件间使用临时表,需要设置Connetion的

SSIS 中的文件系统任务 (File System Task)

SSIS 中的文件系统任务 (File System Task) 经常被用来执行与 Windows 系统下文件操作相关的操作,比如建立目录.删除目录.删除目录下的文件和在目录之间移动文件等.文件系统任务编辑器中的 Operation 选项用来控制文件系统任务所要执行的操作,其他的选项是根据 Operation 的选项出现的,比如如果选择了 Create Directory (建立目录),其他的选项就会有Destination Directory Options 下的 UseDirectoryIf

SQL点滴9—SQL Server中的事务处理以及SSIS中的内建事务

原文:SQL点滴9-SQL Server中的事务处理以及SSIS中的内建事务 我们可以把SSIS中的整个package包含在一个事务中,但是如果在package的执行过程中有一个表需要锁定应该怎么处理呢?SSIS内建的事务处理可以解决这个问题.在此之前首先来熟悉一下SQL Server中的事务的概念. 事务 SQL Server中的事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中永久的组成部分.如果事务遇到错误且必须取消或回滚,则所有的数据修改均被清除

在SSIS中使用自定义的DLL文件

原文:在SSIS中使用自定义的DLL文件 步骤1.开发dll(需要签名) using System;using System.Collections.Generic;using System.Text;using System.Xml;using System.Xml.Schema;namespace ETLXmlParser{    public class ETLXmlParser    {        private static bool isValid = true;