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.pswp.cn/news/373903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Java發送電子郵件

我開始使用Java作為簡單的“如何發送電子郵件”來撰寫這篇文章&#xff0c;但是后來我發現我需要簡要解釋更多事情。 因此&#xff0c;這是有關使用Java發送電子郵件的所有摘要。 在Java SE平臺之外&#xff08;但包含在JavaEE中&#xff09;&#xff0c; JavaMail軟件包提供了…

一張圖讓你看清Java集合類(Java集合類的總結)

如今關于Java集合類的文章非常多&#xff0c;可是我近期看到一個非常有意思圖片&#xff0c;基本上把Java集合的整體框架都給展現出來了。非常直觀。 假設發現圖片看不清楚。點此處看大圖 在這里&#xff0c;集合類分為了Map和Collection兩個大的類別。 處于圖片左上角的那一塊…

CSDN挑戰編程——《數學問題》

數學問題 題目詳情: 給你兩個長度為n的正整數序列分別為{a1,a2,a3...an},{b1,b2,b3...bn},0<ai,bi<100&#xff1b; 設Smax{x1*a1x2*a2x3*a3...xn*an,(1-x1)*b1(1-x2)*b2(1-x3)*b3...(1-xn)*bn}&#xff0c;xi為整數&#xff0c;0<xi<1。 請你求出S的最小值。 輸入…

【P1835】小紅花

很簡單的題&#xff0c;然而我沒想到&#xff0c;在NOIP上怎么辦嘛QAQ 話說這題不知道怎么分類啊……先扔到玄學里邊把…… 原題&#xff1a; Fj在圣誕節來臨之際&#xff0c;決定給他的奶牛發一些小紅花。現在Fj一共有N頭奶牛&#xff0c;這N頭牛按照編號1..N&#xff0c;排成…

python多維數組運用_使用Python將文件讀入多維數組

If I have a text file like this:Hello WorldHow are you?Bye WorldHow would I read it into a multidimensional array like this:[["Hello", "World"],["How", "are", "you?"],["Bye" "World"]]I…

Java日志混亂

每個應用程序都需要記錄日志。 現在&#xff0c;對于在Java中確切使用什么有很多選擇。 最著名的框架是&#xff1a;log4j&#xff0c;logback&#xff0c;commons-logging&#xff0c;slf4j&#xff0c;java.util.logging。 還有更多的東西–時不時有人決定編寫自己的記錄器–…

Cocos2d-x 3.2 Lua演示樣例FontTest(字體測試)

Cocos2d-x 3.2 Lua演示樣例FontTest&#xff08;字體測試&#xff09;本篇博客介紹Cocos2d-x 3.2中Lua測試項目中的FontTest樣例&#xff0c;主要使用了字體文件來創建我們想要的字體樣式&#xff1a;第一個參數為文本。第二參數為ttf字體文件&#xff0c;第三個參數為字體大小…

CSDN挑戰編程——《絕對值最小》

絕對值最小 題目詳情: 給你一個數組A[n],請你計算出ansmin(|A[i]A[j]|)(0<i,j<n). 例如&#xff1a;A{1&#xff0c; 4&#xff0c; -3}&#xff0c; 則&#xff1a; |A[0] A[0]| |1 1| 2. |A[0] A[1]| |1 4| 5. |A[0] A[2]| |1 (-3)| 2. |A[1] A[1]| |4 …

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…

IPC之SystemV

svipc - System V interprocess communication mechanisms linux實現的System V interprocess communication (IPC)機制包含消息隊列&#xff08;message queues&#xff09;&#xff0c;信號集&#xff08;semaphore sets&#xff09;&#xff0c;和共享內存&#xff08;share…

oracle create user

sqlplus /nolog conn sys/pw123456orcl as sysdba CREATE USER zengwenfeng IDENTIFIED BY zengwenfeng ; GRANT ALL PRIVILEGES TO zengwenfeng ; COMMIT; C:\Users\Administrator>sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 24 21:38:24 20…

具有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可以加速&#…

編程挑戰系統的輸入和輸出詳細說明

在高校俱樂部線上編程挑戰中&#xff0c;一道題目的所有測試數據是放在一個文本文件中&#xff0c;選手將一道題目的程序提交給評判系統運行&#xff0c;程序從該文件中讀取測試數據&#xff0c;再把運行結果輸出到另一個文本文件中。系統把輸出文件與標準答案比對&#xff0c;…

上傳文件---未能找到路徑“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…

使用SPANN方式將Spring&Quartz與自定義注釋集成

在上一篇文章中 &#xff0c;我們演示了如何在Spring容器中創建和配置帶批注的Quartz作業。 我們使用了一個類級別的注釋將一些元數據添加到實現Quartz Job的bean中。 批注定義了作業的名稱&#xff0c;組及其cron表達式。 后來&#xff0c;大部分代碼專用于處理該批注&#xf…

python opencv旋轉_Python opencv實現與rotatedrect類似的矩形旋轉,pythonopencv,RotatedRect

本文原理&#xff1a;先旋轉矩形到指定角度&#xff0c;然后提取矩形外輪廓&#xff0c;從而獲取旋轉后的矩形坐標點。#&#xff01;/usr/bin/env python3# -*- coding: utf-8 -*-# Author: tcy# Date: 2020-5-2 21:00:53# Version:V1.01# Last Modified by: tcy shanghai song…

關于string轉整數

又是leetcode的easy級別題&#xff0c;很基本的題目&#xff0c;卻漏考慮很多情況&#xff0c;動手前一定要考慮清楚呀&#xff01;&#xff01;&#xff01; 就當做鍛煉寫作能力吧&#xff0c;先上題目&#xff01; 將文本轉換成整數&#xff0c;注意一下幾點&#xff1a; 1.文…

數字三角形——遞歸、遞推、記憶化搜索

數字三角形 描述: 有一個由非負整數組成的三角形&#xff0c;第一行只有一個數&#xff0c;除了最下行之外每個數的左下方和右下方各有一個數。 問題&#xff1a; 從第一行的數開始&#xff0c;每次可以往左下或右下走一格&#xff0c;直到走到最下行…