Thread: ODBC Numeric field issue
Hi everyone, I'm trying to access postgres using a ODBC Driver on a Linux system RedHat, but I'm getting errors with numeric fields, it works only with one numeric field. Another erro is that it is inserting a NULL record as well. Below is my ODBC configuration and extracts from the erros on the debug file. I've tried different versions of ODBC Drivers with no success. If any one more experient could help me I'll be very happy. Actually I don't know what to do anymore. Thanks in advance. Luciane ------> Odbc Configuration .odbc.ini [PostG] #Driver=/usr/lib/libodbcpsql.so.2 #Driver=/produtos/unixODBC-2.2.14/Drivers/Postgre7.1/.libs/libodbcpsql.so #Driver=/produtos/unixODBC-2.2.10/Drivers/Postgre7.1/.libs/libodbcpsql.so #Driver=/produtos/unixODBC-2.2.12/Drivers/Postgre7.1/.libs/libodbcpsql.so #Driver=/produtos/unixODBC-2.2.13/Drivers/Postgre7.1/.libs/libodbcpsql.so Driver=/produtos/unixODBC-2.3.0/Drivers/Postgre7.1/.libs/libodbcpsql.so.2 #Driver=/usr/lib/psqlodbcw.so Description=drive postgres odbc ServerPort=10.4.3.21:5432 Servername=pgs1dsv Database=pgs1dsv sername=c_gco Password=inicio ReadOnly=no Protocol=7.4 RowVersioning=No ShowSystemTables=No ShowOidColumn=No FakeOidIndex=No Debug=1 DebugFile=/tmp/postgII.out Trace=yes TraceFile=/tmp/ODBCTrace.log UseServerSidePrepare=1 DisallowPremature=1 #Parse=1 ------> Debug - inserting NULL Record SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)' stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (NULL,NULL,NULL,NULL)' it's NOT a select statement: stmt=140373784 send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (NULL,NULL,NULL,NULL)' send_query: done sending query ------> Debug - Issue on the second numeric field SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)' copy_statement_with_params: from(fcType)=1, to(fSqlType)=5 copy_statement_with_params: from(fcType)=1, to(fSqlType)=4 copy_statement_with_params: from(fcType)=1, to(fSqlType)=2 copy_statement_with_params: from(fcType)=1, to(fSqlType)=2 stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (00001,0000000001,'0000000001") VALUES '::numeric,'0000000110Hé'::numeric)' it's NOT a select statement: stmt=140373784 send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (00001,0000000001,'0000000001") VALUES '::numeric,'0000000110Hé'::numeric)' send_query: done sending query read 1, global_socket_buffersize=4096 send_query: got id = 'Z' read 62, global_socket_buffersize=4096 send_query: got id = 'E' send_query: 'E' - ERROR: invalid byte sequence for encoding "UTF8": 0xe95d08 -- View this message in context: http://old.nabble.com/ODBC-Numeric-field-issue-tp28486416p28486416.html Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.
Hi Luciane, Luciane wrote: > Hi everyone, > > I'm trying to access postgres using a ODBC Driver on a Linux system RedHat, > but I'm getting errors with numeric fields, it works only with one numeric > field. Another erro is that it is inserting a NULL record as well. > Below is my ODBC configuration and extracts from the erros on the debug > file. I've tried different versions of ODBC Drivers with no success. If any > one more experient could help me I'll be very happy. Actually I don't know > what to do anymore. > > Thanks in advance. > > Luciane > > > ------> Odbc Configuration .odbc.ini > [PostG] > #Driver=/usr/lib/libodbcpsql.so.2 > #Driver=/produtos/unixODBC-2.2.14/Drivers/Postgre7.1/.libs/libodbcpsql.so > #Driver=/produtos/unixODBC-2.2.10/Drivers/Postgre7.1/.libs/libodbcpsql.so > #Driver=/produtos/unixODBC-2.2.12/Drivers/Postgre7.1/.libs/libodbcpsql.so > #Driver=/produtos/unixODBC-2.2.13/Drivers/Postgre7.1/.libs/libodbcpsql.so > Driver=/produtos/unixODBC-2.3.0/Drivers/Postgre7.1/.libs/libodbcpsql.so.2 > #Driver=/usr/lib/psqlodbcw.so > Description=drive postgres odbc > ServerPort=10.4.3.21:5432 > Servername=pgs1dsv > Database=pgs1dsv > sername=c_gco > Password=inicio > ReadOnly=no > Protocol=7.4 > RowVersioning=No > ShowSystemTables=No > ShowOidColumn=No > FakeOidIndex=No > Debug=1 > DebugFile=/tmp/postgII.out > Trace=yes > TraceFile=/tmp/ODBCTrace.log > UseServerSidePrepare=1 > DisallowPremature=1 > #Parse=1 > > > ------> Debug - inserting NULL Record > SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT > INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)' > stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") > VALUES (NULL,NULL,NULL,NULL)' > it's NOT a select statement: stmt=140373784 > send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1", > "n1", "n2") VALUES (NULL,NULL,NULL,NULL)' > send_query: done sending query I can't see what kind of result you expect. Could you send me directly the Mylog output? > ------> Debug - Issue on the second numeric field > SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT > INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)' > copy_statement_with_params: from(fcType)=1, to(fSqlType)=5 > copy_statement_with_params: from(fcType)=1, to(fSqlType)=4 > copy_statement_with_params: from(fcType)=1, to(fSqlType)=2 > copy_statement_with_params: from(fcType)=1, to(fSqlType)=2 How do you bind the 4 parameters? > stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") > VALUES (00001,0000000001,'0000000001") VALUES > '::numeric,'0000000110Hé'::numeric)' > it's NOT a select statement: stmt=140373784 > send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1", > "n1", "n2") VALUES (00001,0000000001,'0000000001") VALUES > '::numeric,'0000000110Hé'::numeric)' > send_query: done sending query > read 1, global_socket_buffersize=4096 > send_query: got id = 'Z' > read 62, global_socket_buffersize=4096 > send_query: got id = 'E' > send_query: 'E' - ERROR: invalid byte sequence for encoding "UTF8": > 0xe95d08
Hiroshi Inoue, I've uploaded the Mylog_ file. I'm trying to use PostgresSQL with IBM DataStage. The problem happens only with the second numeric fiel, I've tried all others Postgres field types and it works properly. the SQL shown by Datastage seams to be right to me look: INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?); I've asked IBM support and they couldn't help me. http://old.nabble.com/file/p28511550/mylog_a0251185604.log mylog_a0251185604.log Luciane -- View this message in context: http://old.nabble.com/ODBC-Numeric-field-issue-tp28486416p28511550.html Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.
Luciane wrote: > > Hiroshi Inoue, > > I've uploaded the Mylog_ file. > I'm trying to use PostgresSQL with IBM DataStage. > The problem happens only with the second numeric fiel, I've tried all others > Postgres field types and it works properly. > the SQL shown by Datastage seams to be right to me look: > INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?); > I've asked IBM support and they couldn't help me. > > http://old.nabble.com/file/p28511550/mylog_a0251185604.log > mylog_a0251185604.log Thanks. What kind of psqlodbc driver are you using? Judging from the log the driver seems far from the current. regards, Hiroshi Inoue