日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Insert / update(插入 / 更新)此步驟首先使用一個或多個查詢關鍵字查找表中的一行。如果找不到該行,則插入該行。如果可以找到它,并且要更新的字段相同,則不執行任何操作。如果它們不完全相同,則更新表中的行。

注意:如果有多個匹配關鍵字的行,則只比較找到的第一行。這可能會導致不同的結果,這取決于所找到的行是否與給定值匹配。更新場景是這樣的:如果在多個行具有相同關鍵字的情況下發現差異,則對數據庫觸發一個update語句,該語句使用匹配的關鍵字更新所有行。該注意也適用于更新步驟。

選項

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連接。

添加DB連接

然后選項連接類型為mysql,并維護相關的鏈接信息。

維護數據庫連接

連接信息維護完之后,點擊測試,測試連接是否成功。

2.獲取字典表Code數據作為數據輸入源。

添加一個表輸入步驟,數據庫連接上面創建的DB連接名稱demo,然后從獲取SQL查詢語句中選擇表Code,即可。

最后點擊預覽,預覽結果數據。

結果數據

3.添加插入 / 更新輸出步驟,并配置插入 / 更新條件

添加一個輸出中的插入 / 更新步驟。并建立從表輸入到插入 / 更新的一個節點連接。

建立節點連接

在插入 / 更新步驟上配置數據庫連接為上面創建的DB連接名稱demo。目標表選擇user。然后在用來查詢的關鍵字中選擇gender_code;比較符為:= ,然后流里的字段1選擇為:code。更新字段中設置:表字段:gender_name;流字段:name;更新:Y。

設置相關選項內容

最后保存并點擊運行。

查看用戶表數據。

總結

以上是生活随笔為你收集整理的sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。