function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
DaveW_devDaveW_dev 

Using Apex Data Loader command line to connect to external db ( Sybase ASA)

Not sure if anyone has already posted this question or not, regarding accessing Sybase database.
I want to use the Apex Data Loader ( version 11.0 ) command line interface to get information
from a Sybase SQL Anywhere (ASA not ASE ) db and import it into salesforce. So far I've managed to
successfully import from a csv using the command line ( and the process-conf.xml ).
But to connect to my Sybase database I need to know which driver to use ( I'm new to java programming ).
I normally access our Sybase Database through ODBC not JDBC. So I am not familiar with what it will take
to access teh database through JDBC
What do I need to place in the ( database-conf.xml ) file for the "DriverClassName" and the "url"?
The example has the following for Oracle.
      class="org.apache.commons.dbcp.BasicDataSource"
      destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@my.server.com:1521:dataBaseName"/>
    <property name="username" value="user"/>
    <property name="password" value="password"/>
Thanks in Advance,
Dave
DaveW_devDaveW_dev

I am now able to get connected to my ASA database using the following settings in the database-conf.xml file:

<property name="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver"/>

<property name="url" value="jdbc:ODBC:XYZ_STAGING"/>

 

My new issue now that I gettconnected is that correct number of records are getting written to my database table using the databasewrite access type, but all data i swritten as NULLS.  I see the propere data in the sfdcSoapTrace.log.

The followin is the sql from the database-conf.xml file:

<!--- this is for updating RecordType in Sybase ASA based on SFDC RecordTypes -->

<bean id="updateRecordTypeSql"

class="com.salesforce.lexiloader.dao.database.SqlConfig" singleton="true">

<property name="sqlString">

<value>

insert into dba.SF_Recordtype

(SobjectType,Name,Id,Description )

values(@SobjectType@, @Name@, @Id@, @Description@ )

</value>

</property>

<property name="sqlParams">

<map>

<entry key="SobjectType" value="java.lang.String"/>

<entry key="Name" value="java.lang.String"/>

<entry key="Id" value="java.lang.String"/>

<entry key="Description" value="java.lang.String"/>

</map>

</property>

</bean>

Has anyone run into this issue where the data written is all NULLS?

Thanks in advance,

Dave

 

Rick.BanisterRick.Banister
Apex Data Loader's database interface was not designed for customer use, but for internal use by Salesforce.com professional services to migrate new customers's legacy data. It does appear that you're trying to get data out of Salesforce, which is exactly the reverse of that particular intended use of data loader's database interface. It might work, but that was not the business intent of that small enhancement. You'll note that there is no desktop interface -- that is the manifestation of "not intended for customer use."

If you are considering developing integrations or data warehousing, you are better off picking any of the solutions on the AppExchange, in terms of functionality, vendor support, and product road map. Salesforce.com has told us that they do not intend to improve or support the database interface of Data Loader after having cultivated nearly 20 product partner offerings.

We have accurate metrics on the do-it-yourself approach that indicate between a 5-to-1 and a 10-to-1 cost savings in using the appropriate technology, given prevaiing wage rates and product pricing. It takes a minimum of 3 to 6 months to build a complete Salesforce data warehouse if you use ETL tools to do it, because you have to reverse-engineer the schema yourself and hand-build all the data mappings. Then you have a maintenance headache, as you will never know when someone changes the Salesforce data model unless it's you that made the change or the integration breaks because they removed or renamed a field. Using replication products that are designed to replicate the schema and automate the data mappings will eliminate that step, and get you a quick win so you can focus on solving business problems rather than getting bogged down in the technology.

That being said, what are you specifically trying to accomplish? I can help narrow the range of choices for you.
  • Data replication from Salesforce to a Sybase database, including schema creation and automation of Salesforce data model changes in your database (UniDirectional Replication)
  • Reverse replication to Salesforce of new, modified, or deleted records in the database (BiDirectional Replication)
  • Transformation of the data and interfacing to other external data sources that are not the same data model as Salesforce.com's (Integration)
sfdc-apexsfdc-apex

Hi Dave,

Instead of a solution this reply is to ask a solution from you, sorry for that. I also have a similar requirement, where i ned to connect a database to salesforce and upsert the records in salesforce from the database Using Apex Data Loader command line, but i have no idea about it. i will be extremely grateful to you if you can provide me with some inputs regarding it, how to start working on it, approach required or some document or link where i can get info on it.

Thanks in Advance,

Bharat Baradia

Avinash KaltariAvinash Kaltari
Hello, I need to automate a batch process through command prompt, also i did not find any step-to-step guide for running Apex Data Loader from command prompt. Can someone please help me out by giving info on this? Thanks, Avinash Kaltari