Kettle_js脚本_示例

2023-11-01

Kettle 版本7.0

一,String function

1 .date2str

//js操作时间

var dValue = new Date();

//把时间变成字符串

var dValue1 = date2str(dValue);

//把时间变成当前格式字符串

var dValue2 = date2str(dValue,"dd.MM.yyyy");

//把时间变成当前格式字符串

var dValue3 = date2str(dValue,"dd.MM.yyyy HH:mm:ss");

//把时间变成当前格式字符串 + 语言

var dValue4 = date2str(dValue,"E.MMM.yyyy","DE");

//把时间变成当前格式字符串 + 语言

var dValue5 = date2str(dValue,"dd.MM.yyyy HH:mm:ss","EN");

//把时间变成当前格式字符串 + 语言 + 时区

var dValue6 = date2str(dValue,"dd.MM.yyyy HH:mm:ss","EN", "EST");

var str = dValue1 + "\n" + dValue2 + "\n" + dValue3 + "\n" + dValue4 + "\n" + dValue5 + "\n" + dValue6;

Alert(str);

 

2.escapeStr1

  unEscapeHtml 

//js加密解密1

var escapeStr = "<html></html>";

//编码字符串

var escapeStr1 = escapeHtml(str);

//解码字符串

var escapeStr2 = unEscapeHtml(escapeStr1);

Alert(escapeStr1 + "\n" + escapeStr2);

 

3.escapeXml 

  unEscapeXml 

//js加密解密2

var escapeXmlStr = "<html></html>" ;

//编码字符串    

var escapeXmlStr1 = escapeXml(escapeXmlStr);

//解码字符串

var escapeXmlStr2 = unEscapeXml(escapeXmlStr1);

Alert(escapeXmlStr1 + "\n" + escapeXmlStr2);

 

 

4.escapeSQL

//js转换SQL,把单引号变成双引号

var escapeSQLStr = "a'b'c"

var escapeSQLStr1 = escapeSQL(escapeSQLStr);

Alert(escapeSQLStr1);

 

 

5.fillString

//把这个 char复制10遍

Alert(fillString("a",10));

 

6.getOcuranceString

//判断这个字符串在另外一个字符串有多少个

Alert(getOcuranceString("abcakldhiasdku","h"));

 

 

7.indexOf

//搜索字符串

var str1= "Hello Pentaho!";

//搜索某个指定的字符串值在字符串中首次出现的位置

var str2= indexOf(str1, "Pentaho");

//搜索某个指定的字符串值在字符串第7个之后中首次出现的位置

var str3= indexOf(str1, "o", 7);

Alert(str2 + "\n" +str3);

 

 

8.initCap

//返回经过处理的字符串 -My Home

var str1 = "my home";      

Alert(initCap(str1));

 

 

9.lower

//把字符串的大写变成小写

var str1= "Hello World!";

var str2= lower(str1);

Alert("Input:" + str1);

Alert("Converted to LowerCase:" + str2);

 

 

 

10.upper

//把字符串变成大写

var str1= "Hello World!";

var str2= upper(str1);

Alert("Input:" + str1);

Alert("Converted to UpperCase:" + str2);

 

 

11.lpad

//判断字符串是否=>13,如果不够13,则在前面补足x至13个

var str1= "Hello World!";

Alert("Input:" + str1);

Alert("Lpad:" + lpad(str1, "x",13));

 

 

12.rpad

//判断字符串是否=>13,如果不够13,则在后面补足x至13个

var str1= "Hello World!";

Alert("Input:" + str1);

Alert("Rpad:" + rpad(str1, "x",13));

 

 

13.ltrim

   Rtrim

   trim

//去除字符串空格

var str1= "           Hello World!           ";

Alert("Input:" + str1+" "+str1.length);

//去除左边字符串

Alert("Ltrim:" + ltrim(str1)+" "+ltrim(str1).length);

//去除右边字符串

Alert("Rtrim:" + rtrim(str1)+" "+rtrim(str1).length);

//去除全部字符串空格

Alert("Trim:" + trim(str1)+" "+trim(str1).length);

 

 

 

14.num2str

//把数字变成字符串

var d1 = 123.40;

var d2 = -123.40;

//把数字变成字符串

Alert(num2str(d2));

//把字符串变成指定格式的字符串

Alert(num2str(d1, "0.00"));

//把字符串变成指定格式的字符串+区域

Alert(num2str(d1, "0.00", "EN"));

//把字符串变成指定格式的字符串+区域

Alert(num2str(d2, "0.00;(0.00)", "EN"));

 

 

15.protectXMLCDATA

//) 在XML中,指定某段内容不必被XML解析器解析时,使用<![CDATA[...]]>。也就是说中括号中的内容解析器不会去分析。所以其中可以包含>, <, &, ', "这5个特殊字符。经常把一段程序代码嵌入到<![DATA[...]]>中。 因为代码中可能包含大量的 >, <, &, "这样的特殊字符。

var str1 = "my home";      

Alert(protectXMLCDATA(str1));

 

 

16.removeCRLF

//去除字符串里面的回车 \n\r字符

var removeCRLFStr = "abc"+"\n"+"\r"+"abc";

Alert(removeCRLF(removeCRLFStr));

 

 

17.replace

//转换字符串

var str1 = "Hello World, this is a nice function";

//把字符串的World转换成 Folk   

var str2 = replace(str1,"World", "Folk");

Alert(str2);

//把字符串的World转换成 Folk nice 转换成 beautifull

var str2 = replace(str1,"World", "Folk", "nice","beautifull");

Alert(str2);

 

 

 

18.str2RegExp

//跟据指定字符切割字符串

var strToMatch = "info@proconis.de";

var strReg = "^(\\w+)@([a-zA-Z_]+?)\\.([a-zA-Z]{2,3})$";

var xArr =  str2RegExp(strToMatch, strReg);

if ( xArr != null ) {

    for(i=0;i<xArr.length;i++) {

    Alert(xArr[i]);

}

}

else {

    Alert("no match");

}

 

19.substr

//截取字符串

var str1= "0123456789";

//截取前面6个字符串,返回6789

var str2= substr(str1, 6);

//截取8个字符串,从第2个开始,返回23456789

var str3 = substr(str1,2,8)

Alert(str2);

Alert(str3);

 

 

二,numeric function

 

1.abs

//返回绝对值

var d1 = -1234.01;

var d2 = 1234.01;

Alert(abs(d1));

Alert(abs(d2));

 

2.ceil

//返回相反数

var d1 = -1234.01;

var d2 = 1234.01;

Alert(ceil(d1));

Alert(ceil(d2));

 

3.floor

//返回该数值的最大整数

var d1 = -1234.01;

var d2 = 1234.01;

Alert(floor(d1));

Alert(floor(d2));

 

4.str2num

//把字符串转成数字

var str1 = "1.234,56";

var str2 = "12";

//把字符串按照指定的格式转换成数字

Alert((str2num(str1,"#,##0.00")));

Alert((str2num(str2)));

 

5.trunc

//四舍五入取整,只能传double

Alert(trunc(new Date()));

 

 

三,Date Function

1.dateAdd

//再Date时间上增加

// y - Years

// m - Months

// d - Days

// w - Weeks

// wd - Workingdays

// hh - Hours

// mi - Minutes

// ss - Seconds

var d1 = new Date();

Alert(dateAdd(d1, "y", 1));

Alert(dateAdd(d1, "m", 4));

Alert(dateAdd(d1, "d", 5));

Alert(dateAdd(d1, "wd", 5));

 

2.dateDiff

//返回俩个时间类型之间的差异

var d1 = new Date();

var d2 = dateAdd(d1,"y",1);

Alert(dateDiff(d1,d2,"y"));

Alert(dateDiff(d1,d2,"m"));

Alert(dateDiff(d1,d2,"d"));

Alert(dateDiff(d1,d2,"wd"));

 

3.getDayNumber

//返回一个数值,对应一个格式

var d1 = new Date();

Alert(d1);

//这一年的第几天

Alert(getDayNumber(d1, "y"));

//这个月的第几天

Alert(getDayNumber(d1, "m"));

//这个星期的第几天

Alert(getDayNumber(d1, "w"));

//这个月的第几个星期

Alert(getDayNumber(d1, "wm"));

 

4.getFiscalDate

//返回财政日期的日期值,基于给定的偏移量。格式 dd.MM.(暂时不知道怎么用)

var d1 = new Date();

var str1 = "01.00.";

var str2 = "00.01.";

Alert(getFiscalDate(d1, str1));

Alert(getFiscalDate(d1, str2));

 

5.getNextWorkingDay

//返回下一个工作日,星期4-星期5,星期5-星期1

var d = new Date();

var d1 = getNextWorkingDay(d);

Alert(getNextWorkingDay(d1));

 

6.month

//返回当前月份0-11

var d1 = new Date();

Alert(month(d1));

 

7.quarter

//返回当前季度 1-4

var d1 = new Date();

Alert(quarter(d1));

 

8.week

//返回当前是这一年的第几个星期year(var)

var d1 = new Date();

Alert(week(d1));

 

9.year

//返回当前是第几年

var d1 = new Date();

Alert(year(d1));

 

10.str2date

//按照字符串格式转换成Data数据

Alert(str2date("01.12.2006","dd.MM.yyyy"));

Alert(str2date("01.12.2006 23:23:01","dd.MM.yyyy HH:mm:ss"));

Alert(str2date("Tue.May.2006","E.MMM.yyyy","EN"));

Alert(str2date("22.02.2008 23:23:01","dd.MM.yyyy HH:mm:ss","DE"));

Alert(str2date("22.02.2008 23:23:01","dd.MM.yyyy HH:mm:ss","DE", "EST"));

 

 

四,Logic Function

 

1.isCodepage

//检查,一个字符串值对给定的代码页(不知道怎么用)

var xStr = "Réal";

Alert(isCodepage(xStr, "UTF-8"));

 

2.isDate

//检查当前变量是不是时间变量

var d1 = "Hello World";      

var d2 = new Date();

Alert(isDate(d1));

Alert(isDate(d2));

 

3.isEmpty

//检查字符串是不是空的

var d = "Hello World";      

Alert(isEmpty(d));

 

4.isMailValid

//检查这个邮件地址是不是对的

var str = "qq132165432168468@.com";

Alert(isMailValid(str));

 

5.isNum

//检查这个有变量是不是数字

var str1 = "Hello World";      

var str2 = 123456;

Alert(isNum(str1));

Alert(isNum(str2));

 

6.isRegExp

//正则表达式匹配,先匹配第一个,如果没有直接返回-1,如果有接下去匹配,返回匹配条数

var email1 ="info@proconis.de";

var email2= "support@proconis.co.uk";

var email3= "HelloWorld@x";

var str = "啊";

 

var reg1="^\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}$";

var reg2="^[\\w-\.]+@([\\w-]+\\.)+[\\w-]{2,4}$";

var reg3 ="[^\x00-\xff]";

 

Alert(isRegExp(email1, reg1,reg2) + " Matches");

Alert(isRegExp(email2, reg1,reg2) + " Matches");

Alert(isRegExp(email3, reg1,reg2) + " Matches");

Alert(isRegExp(str, reg3) + " Matches");

 

7.isWorkingDay

//判断当前时间是不是工作日

var d1 = new Date();

Alert(isWorkingDay(d1));

 

五,Special Function

1.Alert

/*

//消息弹出框

Alert("Hello World!");

 

2.LoadScriptFile

//读取当前路径下的JavaScript文件

var xPfad = "C:/Users/LiHan/Desktop/adc.js";

LoadScriptFile(xPfad);

 

3.LoadScriptFromTab

//从表里读取Script(不知道怎么用)

var xTab = "Alert("+"Hello World!"+")";

LoadScriptFromTab(xTab);

 

4.LuhnCheck

//判断当前卡号是不是正确信用卡号

var str1 = "4444333322221111";      

Alert(str1 + ": " + LuhnCheck(str1));

var str2 = "4444333322221110";      

Alert(str2 + ": " + LuhnCheck(str2));

 

5.appendToFile

//把数据添加到文件。如果文件不存在,它将被创建。

var strFile = "‪C:/Users/LiHan/Desktop/abc.txt";

var strContent = "Hello World!";

appendToFile(strFile, strContent);

 

6.decode

//匹配字符串,返回指指定字符串或默认值

var str1 = "Hallo";

//匹配hallo 如果有返回hello,没有返回Hallo

Alert(decode(str1, "Hall", "Hello"));

//匹配1,如果有返回Mr。匹配2,如果有返回Mrs,没有返回指定值N/A

Alert(decode(str1, "1", "Mr", "2", "Mrs", "N/A"));

//匹配1,如果有返回Mr。匹配2,如果有返回Mrs,没有返回默认值,原字符串

Alert(decode(str1, "1", "Mr", "2", "Mrs"));

var str1 = "Mrs";

//匹配1,如果有返回Mr,匹配2,如果有返回Mrs,没有返回默认值,原字符串

Alert(decode(str1, "1", "Mr", "2", "Mrs"));

 

 

7.execProcess

//执行一个processus(不知道什么东西),返回执行结果

var processus="文件路径";

execProcess(processus);

 

8.fireToDB

//使用时(找不到MySQL连接不知道怎么使用)

var strConn = "MySQL";

var strSQL = "SELECT count(*) from ttt";

var xArr = fireToDB(strConn, strSQL);

 

 

9.getDigitsOnly

 removeDigits

 

//返回字符串包含的数字的值

var str1 = "abc123cde";      

Alert(getDigitsOnly(str1));

//去除字符串中的数字

var str1 = "abc123cde";   

Alert(removeDigits(str1));

 

10.getEnvironmentVar

   setEnvironmentVar

//获得kettle系统变量的值

Alert(getEnvironmentVar("user.dir"));

Alert(getEnvironmentVar("user.name"));

 

//设置系统全局变量

var strVarName="setEnvTest";

var strVarValue="123456";

Alert(getEnvironmentVar(strVarName));

setEnvironmentVar(strVarName,strVarValue);

Alert(getEnvironmentVar(strVarName));

strVarValue="654321";

setEnvironmentVar(strVarName,strVarValue);

Alert(getEnvironmentVar(strVarName));

 

11.getProcessCount

//返回当前处理行数

// 1: String - The Pentaho/Kettle Type:

// u - Lines Update

// i - Lines Insert

// w - Lines Write

// r - Lines Read

// o - Lines Output

Alert(getProcessCount("i"));

Alert(getProcessCount("o"));

 

12.getTransformationName

//返回当前js步骤名称,如果在转换中运行加上转换的名字

var xTranName = getTransformationName();

Alert(xTranName);

 

13.setVariable

   getVariable

//设置kettle变量

var strVarName="getVariableTest";

var strVarValue="123456";

// 1: String - The name of the variable to set.

// 2: Variable - The value which should be assigned

// 3: Type - "s"ystem, "r"oot, "p"arent, "g"randparent. Upto which

//           level the variable is set.

setVariable(strVarName,strVarValue, "r");

//获取kettle变量,如果没有显示为空

Alert(getVariable("strVarName", ""));

 

14.Print

   Println

//在结果中打印出这个字符串

var str = "Hello World!";

print(str);

//加一个换行

Println(str);

 

15.resolveIP

//转换为一个数字IP地址(x.x.x.x)作为字符串返回(不知道怎么用)

Alert(resolveIP("127.0.0.1","IP"));

 

16.sendMail

//把电子邮件发送到指定的地址

// sendMail(var, var, var, var, var);

// 1: String - SMTP-Server

// 2: String - The Address from which the mail shoud be send

// 3: String - The Address to which the mail should be send.

// For more Recipient's, please provide a list seperated by ','

// 4: String - Subject of the Mail

// 5: String - The Message Text of the mail.

var xSMTP="Your SMTP Server";

var xSender = "Sender eMail";

var xRecipients = "Recipient1,Recipient2,...";

var xSubject = "Hello World!";

var xMessage = "This is the message";

sendMail(xSMTP,xSender,xRecipients,xSubject,xMessage);

 

17.writeToLog

//写一个字符串到kettle日志里

// writeToLog(var);

// 1: String - The Message which should be written to

// the Kettle Debug Log

//

// writeToLog(var,var);

// 1: String - The Type of the Log

// d - Debug

// l - Detailed

// e - Error

// m - Minimal

// r - RowLevel

//

// 2: String - The Message which should be written to

// the Kettle Log

writeToLog("Hello World!");

writeToLog("r", "Hello World!");

 

六,File Function

1.copyFile

//复制一个文件

// copyFile(var1,var2,var3);

// 1: String - The file to copy with Path.

// 2: String - The destination filename with Path.

// 3: Boolean- Overwrite destination file if exist.

var sourcefile="‪C:/Users/LiHan/Desktop/abc.txt";

var destinationfile="D:/abc.txt";

copyFile(sourcefile,destinationfile,true);

 

2.createFolder

//在指定路径创建一个文件夹

var strFolder = "‪C:/Users/LiHan/Desktop/abcd";

createFolder(strFolder);

 

3.deletFile

//删除指定路径的文件

var strFile = "‪C:/Users/LiHan/Desktop/abc.txt";

deletFile(strFile);

 

4.fileExists

//判断文件是否存在

var strFile = "‪C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(fileExists(strFile));

 

5.getFileExtension

//返回文件类型

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(getFileExtension(sourcefile));

 

6.getFileSize

//返回文件大小

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(getFileSize(sourcefile));

 

7.getLastModifiedTime

//返回文件创建时间

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

var dateformat="yyyy-MM-dd HH:MM:ss";

Alert(getLastModifiedTime(sourcefile,dateformat));

 

8.getParentFoldername

//返回文件的父路径

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(getParentFoldername(sourcefile));

 

9.getShortFilename

//获取文件名

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(getShortFilename(sourcefile));

 

10.isFile

//判断是不是文件

var sourcefile="C:/Users/LiHan/Desktop/文件路径.xlsx";

Alert(isFile(sourcefile));

 

11.isFolder

//判断是不是文件夹

var sourcefile="C:/Users/LiHan/Desktop";

Alert(isFolder(sourcefile));

 

12.loadFileContent

//加载文件内容

Alert(loadFileContent("C:/Users/LiHan/Desktop/abc.txt"));

Alert(loadFileContent("C:/Users/LiHan/Desktop/abc.txt"));

//加载文件内容+字符集

Alert(loadFileContent("C:/Users/LiHan/Desktop/abc.txt","GBK"));

 

13.moveFile

//移动文件

// moveFile(var1,var2,var3);

// 1: String - The file to move with Path.

// 2: String - The destination filename with Path.

// 3: Boolean- Overwrite destination file if exists.

var sourcefile="C:/Users/LiHan/Desktop/abc.txt";

var destinationfile="D:/abc.txt";

Alert(moveFile(sourcefile,destinationfile,false));

 

14.touch

//创建一个文件,并修改文件的修改时间

Alert(touch("C:/Users/LiHan/Desktop/abcd.txt"));

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kettle_js脚本_示例 的相关文章

  • git报错kex_exchange_identification

    完整报错 环境 windows10电脑 ssh方式拉取git代码 FATAL Unable to connect to relay host errno 10061 kex exchange identification Connectio
  • 关于力控7.2的问题及解决方案整理(持续更新)

    建议 如果还没用力控 如果还不确定要不要用力控 一定不要 1 很多BUG 开发不完善 2 功能较为单一 目录 1 专家报表关系数据库表头问题 2 智能单元用多了会变卡 3 连接数据库失败啊 可以看报错哦 4 数据库组态改地址报错 4 网络发
  • Kettle的表或视图不存在问题【已解决】

    1 问题描述 在用Kettle做job的时候 报如下的错 2019 11 18 14 28 42 OUT FICP PARAM DATA 2 0 ERROR version 8 3 0 0 371 build 8 3 0 0 371 fro
  • Pentaho学习笔记

    一 Pentaho 整体架构 cc 二 Client tools 1 Report Designer 报表创建工具 如果想创建复杂数据驱动的报表 这是合适工具 2 Design Studio 这是基于eclipse的工具 你可以使用它来创建
  • kettle的下载安装以及问题点

    1 kettle下载以安装 1 kettle的官网下载地址 Pentaho from Hitachi Vantara Browse Files at SourceForge net 2 如果需要下载其他版本 直接点击对应的版本Name 8
  • KEIL中怎样添加STC系列单片机

    我们有时在KEIL中新建工程时需要添加STC系列单片机 但就是找不到 这是因为你安转的Keil软件中没有STC的数据库 所以需要你手动添加 这就需要在STC ISP软件 这个软件可以在STC网http www stcisp com下载或者百
  • 一篇搞定,Kettle详细教程

    文章目录 第一章 Kettle概述 1 1 Kettle发展历程 1 2 Kettle简介 1 3 Kettle相关俗语 1 4 Kettle设计与组成 1 5 Kettle功能模块 1 6 Kettle的执行 Transformation
  • kettle 转换命名参数从将上一转换的参数传递到下一转换中

    kettle 转换命名参数从将上一转换的参数传递到下一转换中 1 知识点 1 如何将转换中的行记录传递到job 结果 中 2 如何使用转换的命名参数功能获取到上一转换中的参数 2 需求及实现 1 需求 如下图所示在转换1中将转换中的结果值传
  • Docker Alpine安装oracle客户端

    Docker Alpine安装oracle客户端 进入docker容器 docker run it name 容器名 镜像名 latest bin sh 由镜像创建容器并进入 只有镜像无容器 或 docker exec it 容器名 bin
  • 2020-2021期末考试爆炸记

    文章目录 友链 期中后N天 期末 不知道多少天 体育考 英语听说 DAY 0 DAY 1 地理 生物 语文 下午 DAY 2 数学 政治 历史 下午 DAY 3 英语 物理 总结 DAY XX 友链 Jackma爷 如何体育18分绝地反击
  • ETL工具——kettle实现简单的数据迁移

    文章目录 1 Kettle概念 2 安装与启动 3 常用组件 4 具体案例 4 1 数据库连接 3 2 sql脚本 3 3 表输入 3 4 字段选择 3 5 表输出 1 Kettle概念 Kettle是一款国外开源的ETL工具 纯java编
  • kettle表数据比较

    使用合并记录组件 我的kettle死活不能保存中文 唉 其中tab in 1和tab in 2代表两个数据源 合并记录 新旧数据源可随意指定 获取需要对比的字段 此处为了对比将比较记录先放在file中 identical 比较的所有字段相同
  • 九十六、kettle版本8.2连接数据库的中文乱码问题

    在学习使用kettle 从Excel导数据到MySQL数据库的过程中踩了不少坑 总结一下以做前车之鉴 希望能给大家提供一点帮助 关于中文乱码目前找到了两种也可以叫三种方法 因为版本不同而方法可能不同 目前我使用第一种防范解决了中文乱码问题
  • python打包后打开闪退问题解决方法总结

    最近写了一个python项目 今天打包后却发现没有反应 查了一些资料说在程序最后加一个input输入语句可以停留在这里 查看看到报错原因 我加了input语句之后执行下面指令进行打包 pyinstaller F hidden import
  • 远控与文件传输

    由于目前工作用到了win10 win7 ubuntu kali等系统 而且考虑到之后出差或者远程办公等 所以打算用我最新的ipad pro连接计算机 这样尽量减少每次背着电脑和ipad等一堆设备 远控与文件传输 1 局域网下电脑文件互传 2
  • Kettle下载Redisinput插件查询Redis数据

    Kettle下载Redisinput插件查询Redis数据 安装插件 1 下载Redisinput插件 https download csdn net download ispringmw 12909650 2 将完整插件包复制到Kettl
  • ETL使用Kettle处理银行信用卡申请项目

    一 项目概述 对当天申请信用卡人员进行信息校对 对不符合人员进行风险标注 无风险人员信息根据所在地区进行分表 交付 信息来源 1 web端 银行网页申请 2 移动端 网银 手机银行 3 三方 各类门户网站 手机APP 4 柜台 人工柜台 A
  • 【b站雅思笔记】Simon‘s IELTS Course - 听力部分

    前情提要 b站up主贼开心的小林上传的Simon的听力课 资料均来源于她 参考 雅思阅读 最好的雅思课程 阅读部分全集 https www bilibili com video BV1ea4y1x7qR spm id from 333 78
  • Pentaho Spoon - 根据字段内容输出到多个文件

    我一直在尝试根据特定字段的值将 pentaho 转换的结果拆分为多个文件 但没有任何运气 例如 包含以下内容的结果集 姓氏 名字 国家 地区 奥巴马 巴拉克 美国 卡梅伦 大卫 英国 布莱尔 托尼 英国 将导致创建 2 个输出文件 USA
  • 在 Pentaho Kettle 中使用变量名称进行数据库连接

    我正在研究 PDI 水壶 我们可以定义一个变量并在数据库连接名称中使用它吗 因此 如果将来我需要更改多个转换中的连接 我只需更改水壶属性文件中的变量值即可 只需使用变量Database Connection 例如 DB HostName a

随机推荐

  • 史上最详细的UE4安装教程(没有之一,就是史上最详细,不服气你来打我呀)

    知识兔这篇文章为大家带来了史上最详细的UE4安装教程 没有之一 就是史上最详细 不服气你来打我呀 主要包含下面几个部分 0 软硬件配置 1 创建Epic Games账户 2 下载和安装启动器 3 登陆启动器 这块有话说 4 安装UE4 5
  • 2023阿里云学生服务器权益,含Clouder认证:云服务器ECS答案

    文章目录 阿里云学生权益 服务器使用7个月 1 高校计划续费任务 飞天加速计划3 0 2个任务 2 任务1 完成实验 ECS云服务器新手上路 2 2 续费6个月 3 任务2 Apsara Clouder云计算专项技能认证 云服务器ECS入门
  • 爱,死亡和机器人(Love,Death&Robots)

    从我自己的角度来讲 我真的是很喜欢这部短片 奇幻 科幻 喜剧交叉在一起构成了这18部短片 精彩绝伦 我只能这么去形容 但是有没有不足呢 客观的来说 也存在不足 过度的吹捧使得有些人神话了它 认为立意不够 题材老套 但这无法掩盖这部优秀作品的
  • Java创建型模式之原型模式

    原型模式 所谓原型模式 就是以一个对象为原型 返回这个对象的克隆 而不是创建一个新的对象 原型对象的优点 在Java中创建一个新对是昂贵和资源密集型 原型对象有助于创建更好性能的重复对象 原型模式的核心就是克隆 克隆又分为浅克隆 深克隆 1
  • Navicat Premium 15 安装教程

    安装教程 1 鼠标右击 Navicat Premium 15 64bit 压缩包 win11及以上系统需先选择 显示更多选项 选择 解压到 Navicat Premium 15 64bit 2 打开解压后的文件夹 鼠标右击 setup 选择
  • java 获取今天是星期几

    java 获取今天是星期几 public class Test public static void main String args String weekDays 星期日 星期一 星期二 星期三 星期四 星期五 星期六 Calendar
  • SpringBoot 解决跨域问题

    问题描述 启动前端遇到跨域问题 原因分析 后端设置的端口号和前端的端口号不同 此时我的后端端口号为 9090 前端端口号为 8080 导致前后端数据交互不成功报错 解决方案 在Springboot项目里加上这个配置文件CorsConfig
  • Linux CentOS-7 系统 离线安装部署Zabbix--->自定义监控--->短信报警 详细教程

    在内网环境 我们无法连接外网 这个时候想要使用zabbix 就要进行离线安装了 安装部署zabbix有三种方法 一是使用源码安装 二是使用RPM包安装 三是使用容器部署 这里讲的是RPM包安装 可以自己线上下载包 也可以用我已经准备好的RP
  • Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age

    这是笔者对这篇论文的翻译 Past Present and Future of Simultaneous Localization and Mapping Toward the Robust Perception Age是一篇SLAM领域的
  • MOSFET导通、关断过程详细分析、损耗分析、米勒效应、datasheet解释

    一 MOSFET导通 关断过程详细分析 转 详见下 MOSFET导通 关断过程详细分析 转 知乎 二 弄懂mosfet的导通过程和损耗分析 详见下 弄懂MOS管的导通过程和损耗分析 三 MOSFET datasheet 的数据解释 深入理解
  • linux下用eclipse编译c++的pthread多线程配置

    问题 eclipse使用pthread h遇到 pthread create 未定义的问题 解决方法 a 需要在编译时添加 lpthread参数 g XXXXX cpp lpthread o XXXXX o b 在eclipse中配置 pr
  • Excel VBA宏

    一 宏与VBA 什么是宏与VBA VBA Visual Basic for Applications 是 Visual Basic https baike baidu com item Visual Basic 的一种宏语言 是在其桌面应用
  • Spring Boot中JSON的数据结构和交互讲解以及实战(超详细 附源码)

    Spring MVC在数据绑定的过程中 需要对传递数据的格式和类型进行转换 它既可以转换String登类型的数据 也可以转换JSON等其他类型的数据 JSON数据结构 JSON JavaScript Object Notation JS对象
  • 吃透Chisel语言.10.Chisel项目构建、运行和测试(二)——Chisel中生成Verilog代码&Chisel开发流程

    Chisel项目构建 运行和测试 二 Chisel中生成Verilog代码 Chisel开发流程 上一篇文章我们提到了怎么用sbt构建Chisel项目并运行Chisel代码 但是毕竟还是在电脑上运行的 而在实践中 我们写的Chisel代码最
  • 51nod-1101 换零钱

    时间限制 1 秒 空间限制 65536 KB 分值 20 N元钱换为零钱 有多少不同的换法 币值包括1 2 5分 1 2 5角 1 2 5 10 20 50 100元 例如 5分钱换为零钱 有以下4种换法 1 5个1分 2 1个2分3个1分
  • FreeRTOS 临界段和开关中断

    以下转载自安富莱电子 http forum armfly com forum php 临界段代码的临界段也称为临界区 一旦这部分代码开始执行 则不允许任何中断打断 为确保临界段代码的执行不被中断 在进入临界段之前须关中断 而临界段代码执行完
  • AIGC来了,品牌方开始要求降价|AI重塑未来营销

    AIGC正在重塑营销领域 为品牌带来新的解决方案 营销可能是最早与AIGC结合并产生实际落地效果的领域之一 然而 需要注意AI工具的局限性和过度精准投放的影响 个性化的营销内容重要 但难以塑造国民级品牌 在AI时代 品牌需要找到自己的最大公
  • pycharm安装教程(安装必看)

    文章目录 软件简介 一 pycharm下载 二 安装 三 使用pycharm 软件简介 PyCharm是一种Python IDE Integrated Development Environment 集成开发环境 带有一整套可以帮助用户在使
  • fstat函数及struct stat结构

    转载地址 点击打开链接 一 fstat 函数 功能 由文件描述符取得文件状态 相关函数 stat lstat chmod chown readlink utime 头文件 include
  • Kettle_js脚本_示例

    Kettle 版本7 0 一 String function 1 date2str js操作时间 var dValue new Date 把时间变成字符串 var dValue1 date2str dValue 把时间变成当前格式字符串 v