2017-08-19 4 views
0

Hallo Leute benutze scriptella, um Dara aus einer Oracle-Datenbank in eine Postgresql-Datenbank zu kopieren. Ich hätte tun können, aber habe ein Problem. Ich möchte eine Spalte kopieren, die numerisch ist, aber ich habe vielleicht einen Code aus der ursprünglichen Tabelle, die nicht wirklich numerisch ist, würde ich gerne testen, ob es numerisch ist, bitte any Hilfe . hier, was ichTest, wenn Spaltentyp numerisch ist 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="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> 

Antwort

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> 
tat
Verwandte Themen