cancel
Showing results for 
Search instead for 
Did you mean: 

MobiLink SQL Passthrough and Oracle

Former Member
1,732

I am trying to use SQL Passthrough to send a create table statement to a remote database. The table will not be synchronized. The remote database is SQL Anywhere 11.0.1.2867 and is running on a Window 7 tablet computer. The consolidated schema is on a 11.2.0.3 Oracle database running on Solaris 10. The MobiLink server (SQL Anywhere MobiLink Server Version 11.0.1.2753) is also running on Solaris 10.

After a successful sync, the table is created in the remote database and the following row is added to the sync_passthrough_status table:

run_order,script_id,script_status,error_code,error_text,remote_run_time

1,11,'S',0,'','2013-04-05 14:38:47.983'

However, the next sync has an error when trying to upload this row to the consolidated Oracle schema:

I. 2013-04-05 15:21:23. <1> Received passthrough data from client: last run_time: 2013-04-05 14:35:23.875606 I. 2013-04-05 15:21:23. <1> run_order: 1 script_id: 11 status S error_code: 0 error_text

Removed several lines of whitespace

remote_run_time: 2013-04-05 14:38:47.983000

I. 2013-04-05 15:21:23. <1> System event: SELECT count(*) FROM ml_passthrough_status WHERE remote_id = ? AND run_order = ? AND remote_run_time = ?

I. 2013-04-05 15:21:23. <1> Translated SQL: SELECT count(*) FROM ml_passthrough_status WHERE remote_id = :p1 AND run_order = :p2 AND remote_run_time = :p3

I. 2013-04-05 15:21:23. <1> System event: INSERT INTO ml_passthrough_status (remote_id, run_order, script_id, script_status, error_code, error_text, remote_run_time) VALUES( ?, ?, ?, ?, ?, ?, ? )

I. 2013-04-05 15:21:23. <1> Translated SQL: INSERT INTO ml_passthrough_status (remote_id, run_order, script_id, script_status, error_code, error_text, remote_run_time) VALUES( :p1, :p2, :p3, :p4, :p 5, :p6, :p7 )

E. 2013-04-05 15:21:23. <1> [-10002] Consolidated database server or ODBC error: ODBC: [Sybase][iAnywhere Solutions - Oracle][Oracle]Data truncated (ODBC State = 01004, Native e rror code = -1)

I thought that maybe it was truncating the blank spaces in the error_text field but this field in SQL Anywhere is long varchar (2GB maximum) and the field in Oracle is clob (4GB maximum).

Any other ideas?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member

but this field in SQL Anywhere is long varchar (2GB maximum) and the field in Oracle is clob (4GB maximum).

I work on the SQLA side of a MobiLink-to-Oracle project and I know syncing these blobs does not work straight-forward with Oracle. (Apparently the other database company never read the iAnywhere development principle of "just make things work they way they should" :). I willl see if I can find the developer who solved the problem on the Oracle side for an actual answer, but I do know he found the solution after research on the web. I would suggest keywords MobiLink, Oracle and clobs.

Former Member
0 Kudos

I notice that your MobiLink clients are a newer build than the MobiLink server. It might not affect the problem, but the MobiLink server build should be greater than or equal to the MobiLink client build (at least for version 12 and earlier of SQL Anywhere).

Also, character set conversion can cause changes to string sizes, which might lead to the Oracle Data truncated error.