2017-08-23 2 views
0

J'utilise Sqoop pour mettre à jour une table dans Oracle avec les options UpdateOnly. Avoir essayé de nombreuses suggestions mentionnées sur divers site, mais cela ne fonctionne toujours pas.La mise à jour de l'exportation Sqoop a échoué avec le paramètre IN ou OUT manquant à l'index :: 2

Le code est donné ci-dessous ...

SqoopOptions sqoopClient = new SqoopOptions(); 

    sqoopClient.setFieldsTerminatedBy(fieldDelim); 
    sqoopClient.setLinesTerminatedBy(lineTerminator); 
    sqoopClient.setTableName(tableName); 

    sqoopClient.setColumns(columnArray); 
    //columnArray contains the list of columns to update including the update 
    sqoopClient.setUpdateKeyCol("id"); 

    sqoopClient.setUpdateMode(SqoopOptions.UpdateMode.UpdateOnly); 

    sqoopClient.setExportDir(inputDirForExportJob); // gets input from this directory in the HDFS 
    sqoopClient.setFileLayout(com.cloudera.sqoop.SqoopOptions.FileLayout.TextFile); 

    com.cloudera.sqoop.tool.SqoopTool sqoop_tool = com.cloudera.sqoop.tool.SqoopTool.getTool("export"); 

    org.apache.sqoop.Sqoop sqoop_export = new org.apache.sqoop.Sqoop(sqoop_tool, hadoop_config, sqoopClient); 

    int status = 1; 

    try{ 
     status = new ExportTool().run(sqoopClient); 
    } 
    return status; 

Even tried executing throug command line 
sqoop export --connect jdbc:oracle:thin:@192.168.2.175:1521:OPS1 --username ZYCDEV --password ZYCDEV --table abhishek_emp --update-key id --export-dir /user/abhisheks/bcr/check.txt --input-fields-terminated-by '|' --columns 'id,description' --update-mode updateonly 

Still same issue.. 

La version Cloudera J'utilise est .. Sqoop-cdh4.2.0.jar .. 1.4.2

Répondre

0

Il était punaise. Je ai essayé avec une version plus récente de Sqoop et ça fonctionne bien.