如果您对Pentaho将空字符串视为null感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Pentaho将空字符串视为null的详细内容,我们还将为您解答空字符串转为nul
如果您对Pentaho 将空字符串视为 null感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Pentaho 将空字符串视为 null的详细内容,我们还将为您解答空字符串转为null的相关问题,并且为您提供关于c# – 在插入数据库时将空字符串设置为null、CsvMapper 将空字段序列化为文字 null、Jackson:将空字符串反序列化为空字符串、java – 将字符串定义为Null更好或为空字符串的有价值信息。
本文目录一览:- Pentaho 将空字符串视为 null(空字符串转为null)
- c# – 在插入数据库时将空字符串设置为null
- CsvMapper 将空字段序列化为文字 null
- Jackson:将空字符串反序列化为空字符串
- java – 将字符串定义为Null更好或为空字符串
Pentaho 将空字符串视为 null(空字符串转为null)
如何解决Pentaho 将空字符串视为 null?
你好,我对 pentaho 很陌生,为什么当 table_input 有一个空字符串时,当插入到 table_output 时数据变为空
例如在表格输入中
ID|name
1|dan
2|
3|itzy
4|kim
5|(null)
我确实预览了我的查询,它可以并且有空字符串
但是当它进入表输出时它变成了空,
我检查了数据库 SELECT * FROM TABLE_OUTPUT
ID|name
1|dan
2|(null)
3|itzy
4|kim
5|(null)
我的步骤包括 TABLE_INPUT=>TABLE_OUTPUT
只是一个简单的选择和插入
我正在使用 pdi-ce-9.1.0.0-324
表输入来自MysqL DB,表输出是POSTGREsql 13
解决方法
恐怕您遇到的问题超出了 Pentaho,因为如您所见,它根本不会更改数据,它只会读取和写入数据。我尝试了各种步骤,试图用空格或制表符替换空字符串,但没有管理它。 您必须在 SQL 中运行以下代码:
SELECT ISNULL( name,'''')
或
SELECT COALESCE( name,'''')
这样,如果出现不允许空值的任务,您将能够使用您的数据库。
(您可以使用 Pentaho 中的 ''SQL Script'' 步骤并在填充表后运行它)
希望能帮到你! 祝你有美好的一天!
c# – 在插入数据库时将空字符串设置为null
try { using (sqlConnection cn = new sqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString())) { cn.open(); sqlCommand cmd = new sqlCommand(); cmd.Connection = cn; cmd.Parameters.Add(new sqlParameter("@FIPSCountyCode",countyCodeTxt.Text)); cmd.Parameters.Add(new sqlParameter("@StateCode",stateCodeList.SelectedValue)); cmd.Parameters.Add(new sqlParameter("@CountyName",countyNameTxt.Text)); string taxStr = taxRateTxt.Text; //test for an empty string and set it to db null if (taxStr == String.Empty) { taxStr = dbnull.Value; } cmd.Parameters.Add(new sqlParameter("@TaxRate",taxStr)); if (AddBtn.Visible == true) cmd.CommandText = addQuery; if (EditBtn.Visible == true) { cmd.CommandText = editQuery; } cmd.ExecuteNonQuery(); cn.Close(); }
我在这里错过了什么?
解决方法
string taxStr = taxRateTxt.Text; //test for an empty string and set it to db null if (taxStr == String.Empty) { taxStr = dbnull.Value; }
并改变这一点
cmd.Parameters.Add(new sqlParameter("@TaxRate",taxStr));
对此
cmd.Parameters.Add(new sqlParameter("@TaxRate",string.IsNullOrEmpty(taxRateTxt.Text) ? (object)dbnull.Value : taxRateTxt.Text));
CsvMapper 将空字段序列化为文字 null
如何解决CsvMapper 将空字段序列化为文字 null?
我希望 CsvMapper 将空实例字段映射为字面空值(如 Desired Output 中所示)。例如:
public class Main {
public static void main(String[] args) throws JsonProcessingException {
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(Pojo.class);
ObjectWriter writer = mapper.writer(schema.withUseHeader(true));
Pojo pojo = new Pojo();
pojo.setFirstName("John");
pojo.setLastName(null);
String csv = writer.writeValueAsstring(pojo);
System.out.println(csv);
}
@Data
public static class Pojo {
private String firstName;
private String lastName;
}
}
实际输出
firstName,lastName
John,
期望输出
firstName,null
解决方法
对 CsvMapper
代码进行了一些挖掘,发现它使用了 DefaultSerializerProvider
。
因此我用自定义的 JsonSerializer
public class CustomNullSerializer extends JsonSerializer<Object> {
public void serialize(Object value,JsonGenerator jgen,SerializerProvider provider) throws IOException {
jgen.writeString("null");
}
}
然后修改了CsvMapper
CsvMapper mapper = new CsvMapper();
DefaultSerializerProvider.Impl sp = new DefaultSerializerProvider.Impl();
sp.setNullValueSerializer(new CustomNullSerializer());
mapper.setSerializerProvider(sp);
,
找到更好的答案
CsvSchema schema = mapper.schemaFor(Pojo.class).withNullValue("null");
Jackson:将空字符串反序列化为空字符串
我有以下类,它是由Jackson映射的(简化版):
public class POI {
@JsonProperty("name")
private String name;
}
在某些情况下,服务器会返回,"name": null
然后我想将name设置为空的Java String。
是否有任何Jackson注释,或者如果属性为,我应该只检查getter中的null并返回空字符串null
?
java – 将字符串定义为Null更好或为空字符串
现在我正在查看来自同事的 Java代码,他已经在这样的方法中声明了他的字符串:
String myStr = null;
我不喜欢它,更糟糕的是,他在“IF”块中为这些字符串赋值,它可能甚至不符合条件,然后在方法结束时调用myStr.length()在他们.
所以我的问题是Java中的首选方式是什么?你认为将它们定义为String.Empty更好还是将它们保留为null并在它们之前调用.length()之前进行空检查?
解决方法
在Java String中,s =“”没有分配任何内存,因为JVM将实现字符串文字,因此甚至没有性能差异(即使有,也会是一个过早的优化).
我们今天的关于Pentaho 将空字符串视为 null和空字符串转为null的分享就到这里,谢谢您的阅读,如果想了解更多关于c# – 在插入数据库时将空字符串设置为null、CsvMapper 将空字段序列化为文字 null、Jackson:将空字符串反序列化为空字符串、java – 将字符串定义为Null更好或为空字符串的相关信息,可以在本站进行搜索。
本文标签: