你好伙计们正在使用scriptella将dara从oracle数据库复制到postgresql数据库中。我已经能够做但有一个问题。我想复制一个数字列,但我可能有一个初始表中的代码,这不是真正的数字我想测试它是数字,请任何帮助。 在这里我做了什么
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd">
<etl>
<description>
test script Pour table article
</description>
<connection id="in" driver="oracle"
url="jdbc:oracle:thin:@localhost:1521:XE" user="test" password="test" />
<connection id="out" driver="postgresql"
url="jdbc:postgresql://localhost:5432/testMonoprix2" user="postgres"
password="maher" />
<query connection-id="in">
SELECT CODE from test.TMP_FOURNISSEUR;
<script connection-id="out" if =" code is numeric" >
INSERT INTO public.suppliers
(code) values
(?CODE);
</script>
</query>
</etl>
答案 0 :(得分:0)
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd">
<etl>
<description>
test script Pour table article
</description>
<connection id="in" driver="oracle"
url="jdbc:oracle:thin:@localhost:1521:XE" user="IPTECH" password="IPTECH" />
<connection id="out" driver="postgresql"
url="jdbc:postgresql://localhost:5432/gemodb" user="postgres"
password="maher" />
<connection id="janino" driver="janino" />
<connection id="log" driver="text" />
<query connection-id="in">
SELECT CODEARTICLE,STRUCTURE, DES,TYPEMARK,TYP,IMPLOC,MARQUE,GAMME,TAR
FROM IPTECH.TMP_ARTICLE ;
<query connection-id="janino">
import java.io.*;
import java.lang.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.*;
Boolean result= false ;
Object obj =get("CODEARTICLE");
if (StringUtils.isNumeric(obj.toString())) {
<!-- System.out.println("ok "); -->
result=true ;}
else{
result=false ;}
set("result", result);
next();
<script connection-id="out" if="result">
INSERT INTO public.articles
(id,
is_enabled,type_marketing,type_tarif,description,gamme,import_local,marque,reference,struct,family_id)
values
(cast(?CODEARTICLE as bigint)
,'TRUE',?TYPEMARK,?TAR,?DES,?GAMME,?IMPLOC,?MARQUE,?CODEARTICLE,?STRUCTURE,cast(?{STRUCTURE.substring(0,
2)} as bigint));
</script>
</query>
</query>
</etl>