0

大家好,正在使用 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>
4

1 回答 1

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>
于 2017-08-20T13:09:48.463 回答