0

我正在尝试测试列是否为数字,以通过 scriptella 从 oracle 数据库复制到 postgresql 数据库,这就是我为 scriptella 所做的。,请提供任何帮助,我只是新手

<?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/testMonoprix2" user="postgres"
        password="maher" />

    <connection id="log" driver="text" /> <!-- For printing debug information on the console -->
    <connection id="java" driver="janino" />



    <query connection-id="in">
        SELECT CODEARTICLE,STRUCTURE, DES,TYPEMARK,TYP,IMPLOC,MARQUE,GAMME,TAR
        FROM IPTECH.TMP_ARTICLE ;


        <script connection-id="java">
            import java.io.*;
            String ntteCode;
            Boolean result;
            Object o = get("CODEARTICLE");
            test =is_numeric(o)
        </script>
            <script connection-id="out" if="test">
                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>
</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="script"></connection>

    <query connection-id="in">
        SELECT CODEARTICLE,STRUCTURE,
        DES,TYPEMARK,TYP,IMPLOC,MARQUE,GAMME,TAR
        FROM IPTECH.TMP_ARTICLE ;

        <query connection-id="out">
        select id from public.article_families ;

            <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();

<!--                <query connection-id="out" if="result and ?id=?CODEARTICLE "> -->
                <query 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 connection-id="janino" >
            </script>
                </query>
            </query>
        </query>
    </query>
</etl>
于 2017-08-21T21:57:56.990 回答