重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

kettle使用文件导入到Postgresql出现乱码的解决方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、来宾网络推广、成都小程序开发、来宾网络营销、来宾企业策划、来宾品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联公司为所有大学生创业者提供来宾建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

小编给大家分享一下kettle使用文件导入到Postgresql出现乱码的解决方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

kettle使用文件导入到Postgresql出现如下几种问题的总结:

第一种错误,报错如ERROR:  extra data after last expected column所示。或者报错为报错为0x05,多一列,extra data after last expected column。

sql查询语句定位到某个字段:

SELECT * ),'%')

解决方法,使用空替代,原因是出现特殊字符,),这种字符,导致的错误。

解决方法如下所示:

 public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
     Object[] r = getRow();
 
     if (r == null) {
     setOutputDone();
     return false;
     }
 
     // It is always safest to call createOutputRow() to ensure that your output row’s Object[] 
     is large
     // enough to handle any new fields you are creating in this step.
     r = createOutputRow(r, data.outputRowMeta.size());
 
     String 字段名称 = get(Fields.In, "字段名称").getString(r);
     if(字段名称 != null) {
         字段名称 = 字段名称.replaceAll(( + "", "");
     }
     get(Fields.Out, "字段名称").setValue(r, 字段名称);
 
     // Send the row on to the next step.
     putRow(data.outputRowMeta, r);
 
     return true;
 }

第二种错误,报错如missing data for column "datastamp"。

sql查询语句定位到某个字段:

SELECT * ),'%')

或者

 SELECT * ),'%')

解决方法:是字段的值出现了,换行回车,),)。)多一行,少n列,missing data column xxx。解决方法:使用字符替代,然后再替换回来。

解决方法如下所示:

 public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
     Object[] r = getRow();
 
     if (r == null) {
     setOutputDone();
     return false;
     }
 
     // It is always safest to call createOutputRow() to ensure that your output row’s Object[] 
     is large
     // enough to handle any new fields you are creating in this step.
     r = createOutputRow(r, data.outputRowMeta.size());
 
     String 字段名称 = get(Fields.In, "字段名称").getString(r);
     if(字段名称 != null) {
         字段名称 = 字段名称.replaceAll("\\r", "@#r;");
         字段名称 = 字段名称.replaceAll("\\n", "@#n;");
     }
     get(Fields.Out, "字段名称").setValue(r, 字段名称);    
 
     // Send the row on to the next step.
     putRow(data.outputRowMeta, r);
 
     return true;
 }

第三种错误,报错如,0x00的解决方法:

sql查询语句定位到某个字段:

SELECT * ),'%')

解决方法:

 public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
     Object[] r = getRow();
 
     if (r == null) {
     setOutputDone();
     return false;
     }
 
     // It is always safest to call createOutputRow() to ensure that your output row’s Object[] 
     is large
     // enough to handle any new fields you are creating in this step.
     r = createOutputRow(r, data.outputRowMeta.size());
 
     // Get the value from an input field
     String 字段名称 = get(Fields.In, "字段名称").getString(r);
 
     if(字段名称 != null) {
         字段名称= 字段名称.replaceAll("\\u0000", "");
     }
 
     get(Fields.Out, "字段名称").setValue(r, 字段名称);
 
     // Send the row on to the next step.
     putRow(data.outputRowMeta, r);
 
     return true;
 }

看完了这篇文章,相信你对kettle使用文件导入到Postgresql出现乱码的解决方法有了一定的了解,想了解更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!


分享标题:kettle使用文件导入到Postgresql出现乱码的解决方法-创新互联
文章位置:http://cqcxhl.cn/article/dejpco.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP