<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SAS Viya 3.5 ODBC DB2 , UNPREPARE class usage ended by SQL0104N in Administration and Deployment</title>
    <link>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/624969#M18197</link>
    <description>&lt;P&gt;Hi ! I've finally got to work SAS ODBC connector with DB2, at Centos 7 using unixODBC (after looot of problems).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally deployment was based on&amp;nbsp;&lt;A href="https://blogs.sas.com/content/sgf/2017/11/16/connecting-sas-db2-database-via-odbc-without-tears/" target="_blank" rel="noopener"&gt;https://blogs.sas.com/content/sgf/2017/11/16/connecting-sas-db2-database-via-odbc-without-tears/&lt;/A&gt;&amp;nbsp; (IMO with tears &lt;span class="lia-unicode-emoji" title=":neutral_face:"&gt;😐&lt;/span&gt; ) .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Everything works until I use CAS (libname procedures work).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;cas mysession2;
caslib casdb3 datasource=(srctype="ODBC" username="..." password="..." 
schema="..."
odbc_dsn="db2odbc" dm_unicode="utf-16"
);

proc casutil; 
list files incaslib="casdb3";
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I've got successful prepared caslib but, when proc casutil plays it comes with error :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;ERROR: An error occurred during transcoding on column REMARKS.
ERROR: Function failed.&lt;/PRE&gt;&lt;P&gt;So.. i've listed all fields from all tables in column called "REMARKS" (including mostly SYSIBM tables), and all of them are NULL.&lt;/P&gt;&lt;P&gt;Then, I came up to trace whole db2 communication by setting this at DB2 :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;db2 UPDATE CLI CFG FOR SECTION COMMON USING Trace 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TracePathName /tmp/db2
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceComm 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceFlush 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceTimeStamp 3&lt;/PRE&gt;&lt;P&gt;And finally I got trace and targeted the problem without ANY idea how to resolve it without your help&lt;/P&gt;&lt;PRE&gt;[02/14/2020 13:59:55.928972] SQLExecDirectW( hStmt=1:2, pszSqlStr="UNPREPARE", cbSqlStr=9 )
[02/14/2020 13:59:55.929214]     ---&amp;gt; Time elapsed - +4.000000E-005 seconds
[02/14/2020 13:59:55.929347] ( StmtOut="UNPREPARE" )
[02/14/2020 13:59:55.929411] 
[02/14/2020 13:59:55.929461] ( Package="SYSSH200          ", Section=65 )
[02/14/2020 13:59:55.929543] 
    sqlccsend( Handle - 0139913848053056 )
    sqlccsend( ulBytes - 134 )
    sqlccsend( ) rc - 0, time elasped - +4.400000E-005
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 233 ) - rc - 0, time elapsed - +1.944000E-003
    Elapsed Server Processing Time - +1.027000E-003
    Elapsed Server Processing Time - +2.900000E-005
[02/14/2020 13:59:55.931855] ( COMMIT REPLY RECEIVED=1 )
[02/14/2020 13:59:55.931940] 

[02/14/2020 13:59:55.932034] SQLExecDirectW( )
[02/14/2020 13:59:55.932090]     &amp;lt;--- SQL_ERROR   Time elapsed - +3.118000E-003 seconds

[02/14/2020 13:59:55.932152] SQLGetDiagRecW( fHandleType=SQL_HANDLE_STMT, hHandle=1:2, iRecNumber=1, pszSqlState=&amp;amp;00007f404d625ae0, pfNativeError=&amp;amp;00007f404d625ad8, pszErrorMsg=&amp;amp;00007f404d625af0, cbErrorMsgMax=512, pcbErrorMsg=&amp;amp;00007f404d625adc )
[02/14/2020 13:59:55.932409]     ---&amp;gt; Time elapsed - +6.200000E-005 seconds
[02/14/2020 13:59:55.932729] ( iRowNumber=-1, iColumnNumber=-2 )
[02/14/2020 13:59:55.932828] 

[02/14/2020 13:59:55.932862] SQLGetDiagRecW( pszSqlState="42601", pfNativeError=-104, pszErrorMsg="[IBM][CLI Driver][DB2/NT64] SQL0104N  An unexpected token "END-OF-STATEMENT" was found following "UNPREPARE".  Expected tokens may include:  "JOIN &amp;lt;joined_table&amp;gt;".  SQLSTATE=42601
", pcbErrorMsg=180 )
[02/14/2020 13:59:55.933040]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +8.880000E-004 seconds

[02/14/2020 13:59:55.933084] SQLGetDiagRecW( fHandleType=SQL_HANDLE_STMT, hHandle=1:2, iRecNumber=2, pszSqlState=&amp;amp;00007f404d625ae0, pfNativeError=&amp;amp;00007f404d625ad8, pszErrorMsg=&amp;amp;00007f404d625af0, cbErrorMsgMax=512, pcbErrorMsg=&amp;amp;00007f404d625adc )
[02/14/2020 13:59:55.933350]     ---&amp;gt; Time elapsed - +4.400000E-005 seconds

[02/14/2020 13:59:55.933388] SQLGetDiagRecW( )
[02/14/2020 13:59:55.933422]     &amp;lt;--- SQL_NO_DATA_FOUND   Time elapsed - +3.380000E-004 seconds

[02/14/2020 13:59:55.933513] SQLFreeHandle( fHandleType=SQL_HANDLE_STMT, hHandle=1:2 )
[02/14/2020 13:59:55.933607]     ---&amp;gt; Time elapsed - +9.100000E-005 seconds
[02/14/2020 13:59:55.933647] ( Caching Statement Structure=1 )
[02/14/2020 13:59:55.933708] 

[02/14/2020 13:59:55.933742] SQLFreeHandle( )
[02/14/2020 13:59:55.933776]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +2.630000E-004 seconds

[02/14/2020 13:59:55.934144] SQLFreeHandle( fHandleType=SQL_HANDLE_STMT, hHandle=1:1 )
[02/14/2020 13:59:55.934260]     ---&amp;gt; Time elapsed - +3.680000E-004 seconds

[02/14/2020 13:59:55.934406] SQLFreeHandle( )
[02/14/2020 13:59:55.934447]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +3.030000E-004 seconds

[02/14/2020 13:59:55.934531] SQLDisconnect( hDbc=0:1 )
[02/14/2020 13:59:55.934603]     ---&amp;gt; Time elapsed - +8.400000E-005 seconds
    sqlccsend( Handle - 0139913848053056 )
    sqlccsend( ulBytes - 28 )
    sqlccsend( ) rc - 0, time elasped - +2.800000E-005
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 76 ) - rc - 0, time elapsed - +1.565000E-003
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 0 ) - rc - 54, time elapsed - +7.940000E-004

[02/14/2020 13:59:55.941164] SQLDisconnect( )
[02/14/2020 13:59:55.943363]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +8.832000E-003 seconds

[02/14/2020 13:59:55.944400] SQLFreeHandle( fHandleType=SQL_HANDLE_DBC, hHandle=0:1 )
[02/14/2020 13:59:55.944903]     ---&amp;gt; Time elapsed - +1.037000E-003 seconds
[02/14/2020 13:59:55.945343] ( Number of allocations left before we freed the Pool=1 )
[02/14/2020 13:59:55.945464] 

[02/14/2020 13:59:55.945524] SQLFreeHandle( )
[02/14/2020 13:59:55.945571]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +1.171000E-003 seconds

[02/14/2020 13:59:55.945634] SQLFreeHandle( fHandleType=SQL_HANDLE_ENV, hHandle=0:1 )
[02/14/2020 13:59:55.945761]     ---&amp;gt; Time elapsed - +6.300000E-005 seconds

[02/14/2020 13:59:55.945864] SQLFreeHandle( )
[02/14/2020 13:59:55.945914]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +2.800000E-004 seconds&lt;/PRE&gt;&lt;P&gt;In my opinion it goes like :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SAS:&amp;nbsp; "Hey DB2, let's use UNPREPARE class, same as Microsoft got, I hope you like it"&lt;/P&gt;&lt;P&gt;DB2:&amp;nbsp; "Nope."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;plz help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 14 Feb 2020 23:13:10 GMT</pubDate>
    <dc:creator>N224</dc:creator>
    <dc:date>2020-02-14T23:13:10Z</dc:date>
    <item>
      <title>SAS Viya 3.5 ODBC DB2 , UNPREPARE class usage ended by SQL0104N</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/624969#M18197</link>
      <description>&lt;P&gt;Hi ! I've finally got to work SAS ODBC connector with DB2, at Centos 7 using unixODBC (after looot of problems).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally deployment was based on&amp;nbsp;&lt;A href="https://blogs.sas.com/content/sgf/2017/11/16/connecting-sas-db2-database-via-odbc-without-tears/" target="_blank" rel="noopener"&gt;https://blogs.sas.com/content/sgf/2017/11/16/connecting-sas-db2-database-via-odbc-without-tears/&lt;/A&gt;&amp;nbsp; (IMO with tears &lt;span class="lia-unicode-emoji" title=":neutral_face:"&gt;😐&lt;/span&gt; ) .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Everything works until I use CAS (libname procedures work).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;cas mysession2;
caslib casdb3 datasource=(srctype="ODBC" username="..." password="..." 
schema="..."
odbc_dsn="db2odbc" dm_unicode="utf-16"
);

proc casutil; 
list files incaslib="casdb3";
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I've got successful prepared caslib but, when proc casutil plays it comes with error :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;ERROR: An error occurred during transcoding on column REMARKS.
ERROR: Function failed.&lt;/PRE&gt;&lt;P&gt;So.. i've listed all fields from all tables in column called "REMARKS" (including mostly SYSIBM tables), and all of them are NULL.&lt;/P&gt;&lt;P&gt;Then, I came up to trace whole db2 communication by setting this at DB2 :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;db2 UPDATE CLI CFG FOR SECTION COMMON USING Trace 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TracePathName /tmp/db2
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceComm 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceFlush 1
db2 UPDATE CLI CFG FOR SECTION COMMON USING TraceTimeStamp 3&lt;/PRE&gt;&lt;P&gt;And finally I got trace and targeted the problem without ANY idea how to resolve it without your help&lt;/P&gt;&lt;PRE&gt;[02/14/2020 13:59:55.928972] SQLExecDirectW( hStmt=1:2, pszSqlStr="UNPREPARE", cbSqlStr=9 )
[02/14/2020 13:59:55.929214]     ---&amp;gt; Time elapsed - +4.000000E-005 seconds
[02/14/2020 13:59:55.929347] ( StmtOut="UNPREPARE" )
[02/14/2020 13:59:55.929411] 
[02/14/2020 13:59:55.929461] ( Package="SYSSH200          ", Section=65 )
[02/14/2020 13:59:55.929543] 
    sqlccsend( Handle - 0139913848053056 )
    sqlccsend( ulBytes - 134 )
    sqlccsend( ) rc - 0, time elasped - +4.400000E-005
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 233 ) - rc - 0, time elapsed - +1.944000E-003
    Elapsed Server Processing Time - +1.027000E-003
    Elapsed Server Processing Time - +2.900000E-005
[02/14/2020 13:59:55.931855] ( COMMIT REPLY RECEIVED=1 )
[02/14/2020 13:59:55.931940] 

[02/14/2020 13:59:55.932034] SQLExecDirectW( )
[02/14/2020 13:59:55.932090]     &amp;lt;--- SQL_ERROR   Time elapsed - +3.118000E-003 seconds

[02/14/2020 13:59:55.932152] SQLGetDiagRecW( fHandleType=SQL_HANDLE_STMT, hHandle=1:2, iRecNumber=1, pszSqlState=&amp;amp;00007f404d625ae0, pfNativeError=&amp;amp;00007f404d625ad8, pszErrorMsg=&amp;amp;00007f404d625af0, cbErrorMsgMax=512, pcbErrorMsg=&amp;amp;00007f404d625adc )
[02/14/2020 13:59:55.932409]     ---&amp;gt; Time elapsed - +6.200000E-005 seconds
[02/14/2020 13:59:55.932729] ( iRowNumber=-1, iColumnNumber=-2 )
[02/14/2020 13:59:55.932828] 

[02/14/2020 13:59:55.932862] SQLGetDiagRecW( pszSqlState="42601", pfNativeError=-104, pszErrorMsg="[IBM][CLI Driver][DB2/NT64] SQL0104N  An unexpected token "END-OF-STATEMENT" was found following "UNPREPARE".  Expected tokens may include:  "JOIN &amp;lt;joined_table&amp;gt;".  SQLSTATE=42601
", pcbErrorMsg=180 )
[02/14/2020 13:59:55.933040]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +8.880000E-004 seconds

[02/14/2020 13:59:55.933084] SQLGetDiagRecW( fHandleType=SQL_HANDLE_STMT, hHandle=1:2, iRecNumber=2, pszSqlState=&amp;amp;00007f404d625ae0, pfNativeError=&amp;amp;00007f404d625ad8, pszErrorMsg=&amp;amp;00007f404d625af0, cbErrorMsgMax=512, pcbErrorMsg=&amp;amp;00007f404d625adc )
[02/14/2020 13:59:55.933350]     ---&amp;gt; Time elapsed - +4.400000E-005 seconds

[02/14/2020 13:59:55.933388] SQLGetDiagRecW( )
[02/14/2020 13:59:55.933422]     &amp;lt;--- SQL_NO_DATA_FOUND   Time elapsed - +3.380000E-004 seconds

[02/14/2020 13:59:55.933513] SQLFreeHandle( fHandleType=SQL_HANDLE_STMT, hHandle=1:2 )
[02/14/2020 13:59:55.933607]     ---&amp;gt; Time elapsed - +9.100000E-005 seconds
[02/14/2020 13:59:55.933647] ( Caching Statement Structure=1 )
[02/14/2020 13:59:55.933708] 

[02/14/2020 13:59:55.933742] SQLFreeHandle( )
[02/14/2020 13:59:55.933776]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +2.630000E-004 seconds

[02/14/2020 13:59:55.934144] SQLFreeHandle( fHandleType=SQL_HANDLE_STMT, hHandle=1:1 )
[02/14/2020 13:59:55.934260]     ---&amp;gt; Time elapsed - +3.680000E-004 seconds

[02/14/2020 13:59:55.934406] SQLFreeHandle( )
[02/14/2020 13:59:55.934447]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +3.030000E-004 seconds

[02/14/2020 13:59:55.934531] SQLDisconnect( hDbc=0:1 )
[02/14/2020 13:59:55.934603]     ---&amp;gt; Time elapsed - +8.400000E-005 seconds
    sqlccsend( Handle - 0139913848053056 )
    sqlccsend( ulBytes - 28 )
    sqlccsend( ) rc - 0, time elasped - +2.800000E-005
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 76 ) - rc - 0, time elapsed - +1.565000E-003
    sqlccrecv( timeout - +0.000000E+000 )
    sqlccrecv( ulBytes - 0 ) - rc - 54, time elapsed - +7.940000E-004

[02/14/2020 13:59:55.941164] SQLDisconnect( )
[02/14/2020 13:59:55.943363]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +8.832000E-003 seconds

[02/14/2020 13:59:55.944400] SQLFreeHandle( fHandleType=SQL_HANDLE_DBC, hHandle=0:1 )
[02/14/2020 13:59:55.944903]     ---&amp;gt; Time elapsed - +1.037000E-003 seconds
[02/14/2020 13:59:55.945343] ( Number of allocations left before we freed the Pool=1 )
[02/14/2020 13:59:55.945464] 

[02/14/2020 13:59:55.945524] SQLFreeHandle( )
[02/14/2020 13:59:55.945571]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +1.171000E-003 seconds

[02/14/2020 13:59:55.945634] SQLFreeHandle( fHandleType=SQL_HANDLE_ENV, hHandle=0:1 )
[02/14/2020 13:59:55.945761]     ---&amp;gt; Time elapsed - +6.300000E-005 seconds

[02/14/2020 13:59:55.945864] SQLFreeHandle( )
[02/14/2020 13:59:55.945914]     &amp;lt;--- SQL_SUCCESS   Time elapsed - +2.800000E-004 seconds&lt;/PRE&gt;&lt;P&gt;In my opinion it goes like :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SAS:&amp;nbsp; "Hey DB2, let's use UNPREPARE class, same as Microsoft got, I hope you like it"&lt;/P&gt;&lt;P&gt;DB2:&amp;nbsp; "Nope."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;plz help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 23:13:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/624969#M18197</guid>
      <dc:creator>N224</dc:creator>
      <dc:date>2020-02-14T23:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Viya 3.5 ODBC DB2 , UNPREPARE class usage ended by SQL0104N</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/625263#M18207</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/312215"&gt;@N224&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to see your odbc.ini file. What did you specify for db2odbc/Driver? Also, I'm wondering if you have "QEWSD=" in your odbc.ini file?&lt;/P&gt;</description>
      <pubDate>Mon, 17 Feb 2020 13:52:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/625263#M18207</guid>
      <dc:creator>alexal</dc:creator>
      <dc:date>2020-02-17T13:52:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Viya 3.5 ODBC DB2 , UNPREPARE class usage ended by SQL0104N</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/626710#M18269</link>
      <description>&lt;P&gt;There is no need to upload new files, i've got it to work and here's my solution :&lt;/P&gt;&lt;P&gt;&lt;A href="https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-connect-Tutorial/m-p/626709#M18268" target="_blank"&gt;https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-connect-Tutorial/m-p/626709#M18268&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 23 Feb 2020 11:04:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/SAS-Viya-3-5-ODBC-DB2-UNPREPARE-class-usage-ended-by-SQL0104N/m-p/626710#M18269</guid>
      <dc:creator>N224</dc:creator>
      <dc:date>2020-02-23T11:04:23Z</dc:date>
    </item>
  </channel>
</rss>

