+ Start a Discussion
Khushal M JainKhushal M Jain 

not able to update oracle table from command line data loader

I am extracting Lead ID and Email from salesforce and updating an Oracle Table with ID if the email matches.

If I hard code email address then the update works correctly. 

<bean id="updateLeadSql"
      class="com.salesforce.dataloader.dao.database.SqlConfig" singleton="true">
    <property name="sqlString">
        <value>
            update VM_TDM.LEAD LEAD
               set LEAD.ID = @ID@
                   
            where
                  LEAD.EMAIL= 'Padraig.Acton@Prontomail.com'
                   
                   
        </value>
    </property>
    <property name="sqlParams">
        <map>
            <entry key="ID"    value="java.lang.String"/>          
            <entry key="EMAIL" value="java.lang.String"/>            
        </map>
    </property>
</bean>

But if I pass it as reference parameter as below, then the update does not happen.

I am not getting any erros in either case.

<bean id="updateLeadSql"
      class="com.salesforce.dataloader.dao.database.SqlConfig" singleton="true">
    <property name="sqlString">
        <value>
            update VM_TDM.LEAD LEAD
               set LEAD.ID = @ID@
                   
            where
                  LEAD.EMAIL= @EMAIL@
                   
                   
        </value>
    </property>
    <property name="sqlParams">
        <map>
            <entry key="ID"    value="java.lang.String"/>          
            <entry key="EMAIL" value="java.lang.String"/>            
        </map>
    </property>
</bean>
Josh Long 6Josh Long 6
Unfortuneately I am not as familiar with command line data loader. However, I would assume that it may be it needs to pass the single qoutes as well. I would try putting in something to print out what it's actually passing to see what it's expecting vs what it's getting. I would have expected it to error but my first guess is that it wants those single quotes.