Search code examples
javascriptellajanino

test if a column is numeric scriptella


am trying to test if column is numeric to be copied from an oracle database to a postgresql database through scriptella , here what i did for scriptella . , Any help please , am just new to this

<?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>

Solution

  • <?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>