sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解

概述

Insert / update(插入 / 更新)此步骤首先使用一个或多个查询关键字查找表中的一行。如果找不到该行,则插入该行。如果可以找到它,并且要更新的字段相同,则不执行任何操作。如果它们不完全相同,则更新表中的行。

注意:如果有多个匹配关键字的行,则只比较找到的第一行。这可能会导致不同的结果,这取决于所找到的行是否与给定值匹配。更新场景是这样的:如果在多个行具有相同关键字的情况下发现差异,则对数据库触发一个update语句,该语句使用匹配的关键字更新所有行。该注意也适用于更新步骤。

选项

88c799fcaca48794d521404b1c93559a.png

Insert / update(插入 / 更新)步骤有以下选项:

Step name(步骤名称):在画布上指定Insert / update(插入 / 更新)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

Connection(数据库连接):从下拉列表中选择已连接数据库的名称。或者您可以:单击“编辑”修改当前的数据库连接;单击“新建”以建立新的数据库连接;单击Wizard,使用向导打开新的数据库连接。

Target schema(目标模式):将数据写入到的表的模式名称。这对于允许表名称中包含句点的数据源来说非常重要。

Target table(目标表):要在其中执行插入或更新操作的表的名称。

Commit size(提交记录数量):在运行提交之前要更改(插入/更新)的行数。

Don't perform any updates(不执行任何更新):如果启用,数据库中的值永远不会更新,而只执行插入。

  • 用来查询的关机键包含如下选项

指定字段值和比较符列表。

Table field(表字段):从填充目标表列的列表中指定要与之比较的字段名。

Comparator(比较符):指定要使用的比较符。注意,根据连接的数据库和目标表,可以进行区分大小写的比较。你可以选择以下其中一个作为比较符:=、<>、、>=、LIKE、BETWEEN、IS NULL、IS NOT NULL。

Stream field 1(流里的字段1):从传入流中指定字段的名称,该字段包含要用于与表字段值进行比较的行。

Stream field 2(流里的字段2):指定来自传入流的字段的名称,该字段包含您希望用于与流里字段1进行比较的行。

Get fields(获取字段):选择此按钮来填充转换中前面步骤中的流里字段1和流里字段2。

  • 更新字段包含如下选项

允许指定表中要插入/更新的所有字段,包括关键字。通过在更新列中指定N,避免对某些字段进行更新。

Table field(表字段):从填充目标表列的列表中指定要执行更新或插入的字段名。

Stream field(流字段):指定来自传入流的字段的名称,该字段包含用于更新或插入的值。

Update(更新):对与表字段是否执行更新操作。

示例

示例采用代码表与用户表,代码表里存放用户性别代码跟名称,用户里面存放用户跟用户的性别代码。为了演示,sql语句很简化,不可以作为实际业务场景,其表sql语句如下。

/*代码表*/

DROP TABLE IF EXISTS `code`;

CREATE TABLE `code` (

`code` varchar(10) NOT NULL,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`code`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into `code`(`code`,`name`) values ('1','男');

insert into `code`(`code`,`name`) values ('2','女');

/*用户表 */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`username` varchar(20) NOT NULL,

`truename` varchar(50) DEFAULT NULL,

`gender_code` varchar(50) DEFAULT NULL,

`gender_name` varchar(50) DEFAULT NULL,

PRIMARY KEY (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into `user`(`username`,`truename`,`gender_code`, `gender_name`) values ('hanmeimei','韩梅梅','2',NULL);

insert into `user`(`username`,`truename`,`gender_code`, `gender_name`) values ('lisi','李四','2',NULL);

insert into `user`(`username`,`truename`,`gender_code`, `gender_name`) values ('zhangsan','张三','1',NULL);

演示效果是用户表字段gender_code中只存了性别的代码,而性别名称的字段gender_name 都为空,现在需要根据字典表更新用户表中的性别名称,

1.建立数据库连接对象

示例采用mysql数据库作为示例,首先下载mysql驱动https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47,然后放在在文件夹data-integrationlib下。然后重启Spoon。如果已经添加过mysql驱动,则可忽略此步骤。

切换至主对象树,双击DB连接。

9619d8c5f259918a83e2957f4b99a435.png

添加DB连接

然后选项连接类型为mysql,并维护相关的链接信息。

5f0cf9ef31d2919175dead566615490f.png

维护数据库连接

连接信息维护完之后,点击测试,测试连接是否成功。

2.获取字典表Code数据作为数据输入源。

添加一个表输入步骤,数据库连接上面创建的DB连接名称demo,然后从获取SQL查询语句中选择表Code,即可。

d46e944b755847d32da720b589a8e65e.png

最后点击预览,预览结果数据。

f9483f56c71d48a58b475d2b6f6ca2e8.png

结果数据

3.添加插入 / 更新输出步骤,并配置插入 / 更新条件

添加一个输出中的插入 / 更新步骤。并建立从表输入到插入 / 更新的一个节点连接。

f2bf27a0724a5f3da5797b6b0d22c02a.png

建立节点连接

在插入 / 更新步骤上配置数据库连接为上面创建的DB连接名称demo。目标表选择user。然后在用来查询的关键字中选择gender_code;比较符为:= ,然后流里的字段1选择为:code。更新字段中设置:表字段:gender_name;流字段:name;更新:Y。

223dd7f1996daf3a48ebf1772891fc63.png

设置相关选项内容

最后保存并点击运行。

f5b20ce5b2003d2125065f84cae66bc5.png

查看用户表数据。

9beeb680a2b7c4d814487321df932f47.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一张图让你看清Java集合类(Java集合类的总结)

如今关于Java集合类的文章非常多&#xff0c;可是我近期看到一个非常有意思图片&#xff0c;基本上把Java集合的整体框架都给展现出来了。非常直观。 假设发现图片看不清楚。点此处看大图 在这里&#xff0c;集合类分为了Map和Collection两个大的类别。 处于图片左上角的那一块…

【P1835】小红花

很简单的题&#xff0c;然而我没想到&#xff0c;在NOIP上怎么办嘛QAQ 话说这题不知道怎么分类啊……先扔到玄学里边把…… 原题&#xff1a; Fj在圣诞节来临之际&#xff0c;决定给他的奶牛发一些小红花。现在Fj一共有N头奶牛&#xff0c;这N头牛按照编号1..N&#xff0c;排成…

Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

Cocos2d-x 3.2 Lua演示样例FontTest&#xff08;字体測试&#xff09;本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例&#xff0c;主要使用了字体文件来创建我们想要的字体样式&#xff1a;第一个參数为文本。第二參数为ttf字体文件&#xff0c;第三个參数为字体大小…

linux上安装memcached步骤

libevent: http://libevent.org/ 服务器端&#xff1a;https://code.google.com/archive/p/memcached/downloads 客户端&#xff1a; http://pecl.php.net/package/memcache 和 http://pecl.php.net/package/memcached 二选一 http://chenzhou123520.iteye.com/blog/1…

具有GlassFish和一致性的高性能JPA –第2部分

在我的四部分系列的第二部分中&#xff0c;我将解释将Coherence与EclipseLink和GlassFish一起使用的策略第一。这描述了配置Coherence的JPA支持的Cache所必须采取的步骤&#xff0c;以及如何在GlassFish中使用它。高性能数据存储。 一般的做法 您可以将Coherence API与通过JPA映…

arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解

背景介绍在日益信息化的社会中&#xff0c;各种各样的嵌入式系统已经全面渗透到日常生活的每一个角落。嵌入式系统的功能越来越复杂&#xff0c;这就使得一个嵌入式系统产品从市场需求立项到方案选择、样机研制、定型量产所需要的开发费用越来越多&#xff0c;所需开发时间越来…

反素数 -- 数学

反素数就是区间内约数个数最多的那个数。 在ACM题目里&#xff0c; 一般是求约数最多而且数字最小的那个数&#xff0c;【1--n】 二是求约数刚好等于n的最小的那个数 三是求区间里的最小反素数【beign&#xff0c;end】 1和3有区别吗&#xff1f;有&#xff0c;1可以加速&#…

上传文件---未能找到路径“D:\MyProject\Files\”的一部分

C# 使用控件FileUpload 上传文件&#xff0c;简单实例&#xff1a; protected void btnUpload_Click(object sender, EventArgs e){string path Server.MapPath("~/Files/");if (fileUpload.HasFile true){string filename fileUpload.FileName.ToLower();fileUpl…

关于string转整数

又是leetcode的easy级别题&#xff0c;很基本的题目&#xff0c;却漏考虑很多情况&#xff0c;动手前一定要考虑清楚呀&#xff01;&#xff01;&#xff01; 就当做锻炼写作能力吧&#xff0c;先上题目&#xff01; 将文本转换成整数&#xff0c;注意一下几点&#xff1a; 1.文…

数字三角形——递归、递推、记忆化搜索

数字三角形 描述: 有一个由非负整数组成的三角形&#xff0c;第一行只有一个数&#xff0c;除了最下行之外每个数的左下方和右下方各有一个数。 问题&#xff1a; 从第一行的数开始&#xff0c;每次可以往左下或右下走一格&#xff0c;直到走到最下行…

水晶报表分组分栏_web报表可视化设计器工具推荐

古往今来&#xff0c;信息就是决胜的关键。在科技时代的今天亦是如此。企业的数据管理在帮助企业加强管控、提高竞争力等方面具有不可或缺的作用。这就不得不说到报表工具。企业想要将储存于各种商业信息系统中的数据转化成有用的信息&#xff0c;最终帮助决策者做出更快、更好…

Twisted

Twisted定义Twisted是一个基于事件驱动的网络引擎框架网络框架&#xff0c;别人预先定义好的一个框架&#xff08;一个项目&#xff09;&#xff0c;如.net某个web框架有25个class&#xff0c;从BeginRequest依次执行类里的process方法&#xff0c;程序员自己定义一个类&#x…

Centos 6.5 搭建php环境(nginx+mariadb+php7)

1.mariaDb vim /etc/yum.repos.d/MariaDB.repo [mariadb] name MariaDB baseurl http://yum.mariadb.org/5.5/centos5-x86 gpgkeyhttps://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck1#如果服务器已经安装了MariaDB-Galera-server包&#xff0c;你可能需要在安装MariaDB-s…

读取nas_NAS怎么玩?除了存放小姐姐,它竟然还有这些功能

自从有了电脑&#xff0c;就一直在折腾"存储那点事儿"&#xff0c;说到底&#xff0c;电脑的本质就是存储&#xff0c;而自己弄家用存储方面的东西算下来也有几年了。单机的硬盘存储比较简单&#xff0c;但是随着家里各种设备的增多&#xff0c;各个设备间的文件共享…

OC第一讲:类和对象

今天终于开始进行OC的学习了 一.首先讲了NSLog NSLog是oc里面的输出语句&#xff0c;其用法和printf差不多&#xff0c;但是还是有差别的 1&#xff0c;NSLog是自动换行的&#xff0c;不用像printf那样还需要加\n&#xff1b; 2&#xff0c;NSLog在引号面前需要添加符号&#x…

PL/SQL Developer跑在Oracle 64位数据库上初始化错误

安装完Oracle(64位)、PL/SQL Developer后运行PL/SQL出现如下的错误&#xff1a; 网上查资料说&#xff0c;我的PL/SQL Developer与ORACLE不兼容&#xff0c;即PL/SQL不支持64位的ORACLE&#xff0c;因此得下一个32位的ORCALE客户端并配置相应的参数&#xff1a; 解决步骤小记&a…

gis 联合 融合_GIS技术进化 | 我们为何需要跨平台GIS技术体系?

10月30日&#xff0c;超图在2019 GIS 软件技术大会上发布了SuperMap GIS 10i系列产品。SuperMap GIS 10i全面融入人工智能(AI)技术&#xff0c;创新并构建了GIS基础软件“BitCC”五大技术体系&#xff0c;即大数据GIS、人工智能GIS、新一代三维GIS、云原生GIS和跨平台GIS&#…

UVa11925 Generating Premutations

留坑(p.254) 1 #include<cstdio>2 #include<cstring>3 #include<cstdlib>4 #include<algorithm>5 #include<iostream>6 7 using namespace std;8 9 void setIO(const string& s) { 10 freopen((s ".in").c_str(), "r&qu…

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

不指定数据库可以正常连接&#xff1a; 指定数据库和使用PL/SQL Developer都出现错误&#xff1a; 在此说明一下我的环境&#xff1a;Oralce装的是64位的在使用PL/SQL Developer时曾出现过初始化错误&#xff0c;解决办法就是下载oracle 32位客户端并相应的配置。 解决方案一&a…

Devoxx 2011印象

Devoxx 2011结束了&#xff0c;它很棒。 最终&#xff0c;在不得不与妻子和孩子度过周末之后&#xff08;上个星期我很少见过&#xff09;&#xff0c;我找到了写下一些东西的时间。 对我来说&#xff0c;这是第六个Devoxx&#xff0c;我的第一个是2006年-那时我还是一个学生&a…