11g ODBC SQLGetTypeInfo result COLUMN_SIZE column being returned as 64bit v

Using InstantClient 11.2 ODBC I'm getting odd behavior for the SQLGetTypeInfo call on a 64bit Win2K3 machine.
When binding the result column 2 (COLUMN_SIZE) as an integer (as per the ODBC spec), it looks like this is being returned in a 64bit word (even though the buffer buffer size is specified as a SQLUINTEGER).
This is obviously causing some issues - is this a known bug?
My solution is to move this value's storage to the end of the struct I'm using to store all the columns of the result and add some additional padding but my concern is that there are other areas where the ODBC interface is not following the ODBC specification. Is there a list of known exceptions to the ODBC specification for the oracle instant client drivers for 64 bit architectures?

Thanks. That's doing the trick.
We can use PASSTHROUGH PACKAGE to change the SQL_MODE for a particular session using the MySQL statement: set session sql_mode='ANSI_QUOTES';
It will then look like:
- first setting in the session ANSI_SQL using PASSTHROUGH:
DECLARE
ret integer;
c integer;
BEGIN
c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@mysql;
DBMS_HS_PASSTHROUGH.PARSE@mysql(c, 'SET SESSION SQL_MODE=''ANSI_QUOTES'';'));
ret := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@mysql(c);
dbms_output.put_line(ret ||' passthrough output');
DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@mysql(c);
END;
REMARK: The passthrough statement SET SQL_MODE=''ANSI_QUOTES''; uses 2 single quotes ... !!no DOUBLE QUOTES !!
Now selects works using double qoutes:
SQL> select * from "test"@mysql;
col1 col2
Hello 1
As soon as I disconnect and connect again and try to run the select without the PASSTHROUGH we get the old error again:
SQL> select * from "test"@mysql;
select * from "test"@mysql
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community]You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near '"col1",A1."col2" FROM "test" A1' at line 1
ORA-02063: preceding 2 lines from MYSQL
So using PASSTHROUGH at the beginning of each session allows us to change the ANSI mode for a particular session only without affecting all the other clients and might be a good workaround.

Similar Messages

  • Search has encountered a problem that prevents results from being returned. If the issue persists, please contact your administrator.

    Hello Guys,
    I am creating resultsource from central admin. If I create it from central admin it works fine. But if I am creating result source from power shell scripts it shows me following error message.
    An exception of type 'Microsoft.Office.Server.Search.Query.InternalQueryErrorException' occurred in Microsoft.Office.Server.Search.dll but was not handled in user code
    Additional information: Search has encountered a problem that prevents results from being returned.  If the issue persists, please contact your administrator.
    Any suggestion ?
    Thanks in Advance.

    Hi,
    Please provide more specific information about the issue. What type of content source you tried creating via powershell?
    Make sure you are using the approproate permission and search service application.
    Here is the reference for creating content resource via script:
    http://technet.microsoft.com/en-us/library/ff607867(v=office.15).aspx
    Regards,
    Rebecca Tu
    TechNet Community Support

  • Migration from 9i to 11g Transparent Gateway results in a) ORA-12704: character set mismatch b) ORA-02070: database ... does not support SYS_OP_C2C in this context

    Migration from 9i to 11g Transparent Gateway results in a) ORA-12704: character set mismatch b) ORA-02070: database ... does not support SYS_OP_C2C in this context
    What Transparent Gateway (TG) 11g configuration steps prevent the following errors?:
    a) ORA-12704: character set mismatch
    b) ORA-02070: database <DB_link_name> does not support SYS_OP_C2C in this context
    Hints:
    The current 9i TG works with the existing views and packages.  These same db objects will not compile using the new 11g TG.
    The db objects are on an Oracle 10g database linked to an SQL Server 2008 R2 database.
    Since the 9i TG works I assume a configuration to the 11g TG will get it working same as before.  But what...
    Is is something controlled by these parameters?  (Sorry, I don't know how this stuff works.  I'm the application developer.  My DBAs setup the Transparent Gateways.):
      Parameters in the Gateway Startup Shell script:
        ORA_NLS33
        NLS_LANG
      Parameters in the initsid.ora file:
        HS_LANGUAGE
        HS_NLS_DATE_FORMAT
        HS_NLS_DATE_LANGUAGE
    I'm avoiding the known workaround to refactor the VIEWS and PACKAGES to contain CAST() statements to explicitly match the data types.  A server side fix to the 11g TG is preferred. 
    Sample code:
    a) ORA-12704: character set mismatch
       ... is caused by SQL that works with my 9i TG but not with my 11g TG.  It's a snippit from my view that won't compile:
                      select status_code                  -- Oracle VARCHAR2(30)
                      from   ora_app_interfaces
                     UNION
                      select "StatusCode" as status_code  -- SQL Server NVARCHAR(30)
                      from   SqlAppInterfaces
       Example workaround that I'm avoiding:
                      select status_code
                      from   ora_app_interfaces
                     UNION
                      select CAST("StatusCode" as VARCHAR(30)) as status_code
                      from   SqlAppInterfaces
    b) ORA-02070: database <DB_link_name> does not support SYS_OP_C2C in this context
       A line of code in the procedure that compiles correctly but fails to execute:
               -- Insert into SQL Server from Oracle
               insert into PatientMedRecNum ( 
                  "PatID",         -- SQL Server INT
                  "MedRecNum",     -- SQL Server NVARCHAR(11)
                  "Hospital")      -- SQL Server NVARCHAR(30)
               values (
                  pi_pat_id,       -- Oracle NUMBER
                  pi_med_rec_num,  -- Oracle VARCHAR2
                  pi_hospital);    -- Oracle VARCHAR2
    I'd guess the errors are caused by the TG's implicit conversion between the Oracle VARCHAR2 and the SQL Server NVARCHAR... but this works fine on the 9i TG... how do I set it up to work on the 11g TG? 
    Thanks!

    Trace of 11g TG... generating errors due to lack of automatic mapping from SQL NVARCHAR to Oracle NVARCHAR, where the previous 9g TG mapped from SQL NVARCHAR to Oracle VARCHAR2.
    Oracle Corporation --- MONDAY    SEP 22 2014 13:35:08.186
    Heterogeneous Agent Release
    11.2.0.4.0
    Oracle Corporation --- MONDAY    SEP 22 2014 13:35:08.186
    Version 11.2.0.4.0
    Entered hgogprd
    HOSGIP for "HS_FDS_TRACE_LEVEL" returned "DEBUG"
    Entered hgosdip
    setting HS_OPEN_CURSORS to default of 50
    setting HS_FDS_RECOVERY_ACCOUNT to default of "RECOVER"
    setting HS_FDS_RECOVERY_PWD to default value
    setting HS_FDS_TRANSACTION_LOG to default of HS_TRANSACTION_LOG
    setting HS_IDLE_TIMEOUT to default of 0
    setting HS_FDS_TRANSACTION_ISOLATION to default of "READ_COMMITTED"
    setting HS_NLS_NCHAR to default of "UCS2"
    setting HS_FDS_TIMESTAMP_MAPPING to default of "DATE"
    setting HS_FDS_DATE_MAPPING to default of "DATE"
    setting HS_RPC_FETCH_REBLOCKING to default of "ON"
    setting HS_FDS_FETCH_ROWS to default of "100"
    setting HS_FDS_RESULTSET_SUPPORT to default of "FALSE"
    setting HS_FDS_RSET_RETURN_ROWCOUNT to default of "FALSE"
    setting HS_FDS_PROC_IS_FUNC to default of "FALSE"
    setting HS_FDS_MAP_NCHAR to default of "TRUE"
    setting HS_NLS_DATE_FORMAT to default of "YYYY-MM-DD HH24:MI:SS"
    setting HS_FDS_REPORT_REAL_AS_DOUBLE to default of "FALSE"
    setting HS_LONG_PIECE_TRANSFER_SIZE to default of "65536"
    setting HS_SQL_HANDLE_STMT_REUSE to default of "FALSE"
    setting HS_FDS_QUERY_DRIVER to default of "FALSE"
    setting HS_FDS_SUPPORT_STATISTICS to default of "TRUE"
    setting HS_FDS_QUOTE_IDENTIFIER to default of "TRUE"
    setting HS_KEEP_REMOTE_COLUMN_SIZE to default of "OFF"
    setting HS_FDS_GRAPHIC_TO_MBCS to default of "FALSE"
    setting HS_FDS_MBCS_TO_GRAPHIC to default of "FALSE"
    setting HS_CALL_NAME_ISP to "gtw$:SQLTables;gtw$:SQLColumns;gtw$:SQLPrimaryKeys;gtw$:SQLForeignKeys;gtw$:SQLProcedures;gtw$:SQLStatistics;gtw$:SQLGetInfo"
    setting HS_FDS_DELAYED_OPEN to default of "TRUE"
    setting HS_FDS_WORKAROUNDS to default of "0"
    setting HS_FDS_ARRAY_EXEC to default of "TRUE"
    Exiting hgosdip, rc=0
    ORACLE_SID is "xxxDEV"
    Product-Info:
      Port Rls/Upd:4/0 PrdStat:0
    Agent:Oracle Database Gateway for MSSQL
    Facility:hsa
    Class:MSSQL, ClassVsn:11.2.0.4.0_0019, Instance:xxxDEV
    Exiting hgogprd, rc=0
    Entered hgoinit
    HOCXU_COMP_CSET=1
    HOCXU_DRV_CSET=178
    HOCXU_DRV_NCHAR=1000
    HOCXU_DB_CSET=178
    HS_LANGUAGE not specified
    rc=1239980 attempting to get LANG environment variable.
    HOCXU_SEM_VER=102000
    Entered hgolofn at 2014/09/22-13:35:08
    RC=-1 from HOSGIP for "PATH"
    Setting PATH to "C:\oracle\product\11.2.0\tg_2\dg4msql\driver\lib"
    Exiting hgolofn, rc=0 at 2014/09/22-13:35:08
    HOSGIP for "HS_OPEN_CURSORS" returned "50"
    HOSGIP for "HS_FDS_FETCH_ROWS" returned "100"
    HOSGIP for "HS_LONG_PIECE_TRANSFER_SIZE" returned "65536"
    HOSGIP for "HS_NLS_NUMERIC_CHARACTER" returned ".,"
    HOSGIP for "HS_KEEP_REMOTE_COLUMN_SIZE" returned "OFF"
    HOSGIP for "HS_FDS_DELAYED_OPEN" returned "TRUE"
    HOSGIP for "HS_FDS_WORKAROUNDS" returned "0"
    HOSGIP for "HS_FDS_MBCS_TO_GRAPHIC" returned "FALSE"
    HOSGIP for "HS_FDS_GRAPHIC_TO_MBCS" returned "FALSE"
    treat_SQLLEN_as_compiled = 1
    Exiting hgoinit, rc=0 at 2014/09/22-13:35:08
    Entered hgolgon at 2014/09/22-13:35:08
    reco:0, name:abaccess, tflag:0
    Entered hgosuec at 2014/09/22-13:35:08
    uencoding=UTF16
    Entered shgosuec at 2014/09/22-13:35:08
    Exiting shgosuec, rc=0 at 2014/09/22-13:35:08
    shgosuec() returned rc=0
    Exiting hgosuec, rc=0 at 2014/09/22-13:35:08
    HOSGIP for "HS_FDS_RECOVERY_ACCOUNT" returned "RECOVER"
    HOSGIP for "HS_FDS_TRANSACTION_LOG" returned "HS_TRANSACTION_LOG"
    HOSGIP for "HS_FDS_TIMESTAMP_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_DATE_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_MAP_NCHAR" returned "TRUE"
    HOSGIP for "HS_FDS_RESULTSET_SUPPORT" returned "FALSE"
    HOSGIP for "HS_FDS_RSET_RETURN_ROWCOUNT" returned "FALSE"
    HOSGIP for "HS_FDS_PROC_IS_FUNC" returned "FALSE"
    HOSGIP for "HS_FDS_REPORT_REAL_AS_DOUBLE" returned "FALSE"
    HOSGIP for "HS_FDS_DEFAULT_OWNER" returned "dbo"
    HOSGIP for "HS_SQL_HANDLE_STMT_REUSE" returned "FALSE"
    Entered hgocont at 2014/09/22-13:35:08
    HS_FDS_CONNECT_INFO = "sqlserverxxx/sqlinstancexxx/SQL_Server_2008_xxx_DEV"
    RC=-1 from HOSGIP for "HS_FDS_CONNECT_STRING"
    Entered hgogenconstr at 2014/09/22-13:35:08
    dsn: sqlserverxxx/sqlinstancexxx/SQL_Server_2008_xxx_DEV, name:xxx_admin
    optn:
    Entered hgocip at 2014/09/22-13:35:08
    dsn:sqlserverxxx/sqlinstancexxx/SQL_Server_2008_xxx_DEV
    Exiting hgocip, rc=0 at 2014/09/22-13:35:08
    Entered shgogohn at 2014/09/22-13:35:08
    ohn is 'OraGtw11g_home2'
    Exiting shgogohn, rc=0 at 2014/09/22-13:35:08
    RC=-1 from HOSGIP for "HS_FDS_ENCRYPT_SESSION"
    using 0 as default value for "HS_FDS_ENCRYPT_SESSION"
    RC=-1 from HOSGIP for "HS_FDS_VALIDATE_SERVER_CERT"
    using 1 as default value for "HS_FDS_VALIDATE_SERVER_CERT"
    Entered hgocont_OracleCsidToIANA at 2014/09/22-13:35:08
    Returning 2252
    Exiting hgocont_OracleCsidToIANA at 2014/09/22-13:35:08
    Exiting hgogenconstr, rc=0 at 2014/09/22-13:35:08
    Entered hgopoer at 2014/09/22-13:35:08
    hgopoer, line 231: got native error 5701 and sqlstate 01000; message follows...
    [Oracle][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Changed database context to 'Xxx_XXX_DEV'. {01000,NativeErr = 5701}[Oracle][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Changed language setting to us_english. {01000,NativeErr = 5703}
    Exiting hgopoer, rc=0 at 2014/09/22-13:35:08
    hgocont, line 2764: calling SqlDriverConnect got sqlstate 01000
    Entered hgolosf at 2014/09/22-13:35:08
    Exiting hgolosf, rc=0 at 2014/09/22-13:35:08
    DriverName:HGmsss23.dll, DriverVer:07.01.0093 (B0098, U0065)
    DBMS Name:Microsoft SQL Server, DBMS Version:10.00.2531
    Exiting hgocont, rc=0 at 2014/09/22-13:35:08 with error ptr FILE:hgocont.c LINE:2764 ID:SQLDriverConnect
    SQLGetInfo returns Y for SQL_CATALOG_NAME
    SQLGetInfo returns 128 for SQL_MAX_CATALOG_NAME_LEN
    Exiting hgolgon, rc=0 at 2014/09/22-13:35:08
    Entered hgoulcp at 2014/09/22-13:35:08
    Entered hgowlst at 2014/09/22-13:35:08
    Exiting hgowlst, rc=1 at 2014/09/22-13:35:08
    SQLGetInfo returns Y for SQL_PROCEDURES
    SQLGetInfo returns 0x1f for SQL_OWNER_USAGE
    TXN Capable:2, Isolation Option:0xf
    SQLGetInfo returns 128 for SQL_MAX_SCHEMA_NAME_LEN
    SQLGetInfo returns 128 for SQL_MAX_TABLE_NAME_LEN
    SQLGetInfo returns 134 for SQL_MAX_PROCEDURE_NAME_LEN
    HOSGIP returned value of "TRUE" for HS_FDS_QUOTE_IDENTIFIER
    SQLGetInfo returns " (0x22) for SQL_IDENTIFIER_QUOTE_CHAR
    13 instance capabilities will be uploaded
    capno:1992, context:0x0001ffff, add-info:        0
    capno:3042, context:0x00000000, add-info:        0, translation:"42"
    capno:3047, context:0x00000000, add-info:        0, translation:"57"
    capno:3049, context:0x00000000, add-info:        0, translation:"59"
    capno:3050, context:0x00000000, add-info:        0, translation:"60"
    capno:3066, context:0x00000000, add-info:        0
    capno:3067, context:0x00000000, add-info:        0
    capno:3068, context:0x00000000, add-info:        0
    capno:3069, context:0x00000000, add-info:        0
    capno:3500, context:0x00000001, add-info:       91, translation:"42"
      capno:3501, context:0x00000001, add-info:       93, translation:"57"
    capno:3502, context:0x00000001, add-info:      107, translation:"59"
    capno:3503, context:0x00000001, add-info:      110, translation:"60"
    Exiting hgoulcp, rc=0 at 2014/09/22-13:35:08
    Entered hgouldt at 2014/09/22-13:35:08
    NO instance DD translations were uploaded
    Exiting hgouldt, rc=0 at 2014/09/22-13:35:08
    Entered hgobegn at 2014/09/22-13:35:08
    tflag:0 , initial:1
    hoi:0x12ee18, ttid (len 32) is ...
      xxx
      xxx
    tbid (len 10) is ...
      0: 09000F00 0FAC1E00 010A [..........]
    Exiting hgobegn, rc=0 at 2014/09/22-13:35:08
    Entered hgodtab at 2014/09/22-13:35:08
    count:1
      table: XXX_INTERFACE
    Allocate hoada[0] @ 0000000005F58270
    Entered hgopcda at 2014/09/22-13:35:08
    Column:1(InterfaceID): dtype:2 (NUMERIC), prc/scl:20/0, nullbl:0, octet:0, sign:1, radix:10
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    Entered hgopcda at 2014/09/22-13:35:08
    Column:2(TableName): dtype:-9 (WVARCHAR), prc/scl:30/0, nullbl:0, octet:60, sign:1, radix:0
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    Entered hgopcda at 2014/09/22-13:35:08
    Column:3(TableID): dtype:4 (INTEGER), prc/scl:10/0, nullbl:0, octet:0, sign:1, radix:10
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    Entered hgopcda at 2014/09/22-13:35:08
    Column:4(StatusCode): dtype:-9 (WVARCHAR), prc/scl:30/0, nullbl:0, octet:60, sign:1, radix:0
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    Entered hgopcda at 2014/09/22-13:35:08
    Column:5(StatusTimestamp): dtype:93 (TIMESTAMP), prc/scl:23/3, nullbl:0, octet:0, sign:1, radix:0
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    Entered hgopcda at 2014/09/22-13:35:08
    Column:6(InterfaceLog): dtype:-9 (WVARCHAR), prc/scl:400/0, nullbl:1, octet:800, sign:1, radix:0
    Exiting hgopcda, rc=0 at 2014/09/22-13:35:08
    The hoada for table XXX_INTERFACE follows...
    hgodtab, line 1073: Printing hoada @ 0000000005F58270
    MAX:6, ACTUAL:6, BRC:1, WHT=6 (TABLE_DESCRIBE)
    hoadaMOD bit-values found (0x40:TREAT_AS_NCHAR,0x400:UNICODE_COLUMN)
    DTY NULL-OK  LEN  MAXBUFLEN   PR/SC  CST IND MOD NAME
      3 DECIMAL N         22         22 20/  0    0   0   0 InterfaceID
    12 VARCHAR N         60         60 128/ 30 1000   0 440 TableName
      4 INTEGER N          4 4   0/  0    0   0   0 TableID
    12 VARCHAR N         60         60 128/ 30 1000   0 440 StatusCode
    91 DATE N         16         16 0/  0    0   0   0 StatusTimestamp
    12 VARCHAR Y        800        800 129/144 1000   0 440 InterfaceLog
    Exiting hgodtab, rc=0 at 2014/09/22-13:35:08
    Entered hgodafr, cursor id 0 at 2014/09/22-13:35:08
    Free hoada @ 0000000005F58270
    Exiting hgodafr, rc=0 at 2014/09/22-13:35:08
    Entered hgotcis at 2014/09/22-13:35:08
    Calling SQLStatistics for XXX_INTERFACE
    IndexType=SQL_TABLE_STAT: cardinality=0
    IndexType=1: PK_XXX_Interface
    IndexType=3: IX_TableID
    IndexType=3: IX_TableName
    Calling SQLColumns for dbo.SQL_app_INTERFACE
    #1 Column "InterfaceID": dtype=2, colsize=20, decdig=0, char_octet_length=0, cumulative avg row len=15
    #2 Column "TableName": dtype=-9, colsize=30, decdig=0, char_octet_length=60, cumulative avg row len=60
    #3 Column "TableID": dtype=4, colsize=10, decdig=0, char_octet_length=0, cumulative avg row len=64
    #4 Column "StatusCode": dtype=-9, colsize=30, decdig=0, char_octet_length=60, cumulative avg row len=109
    #5 Column "StatusTimestamp": dtype=93, colsize=23, decdig=3, char_octet_length=0, cumulative avg row len=125
    #6 Column "InterfaceLog": dtype=-9, colsize=400, decdig=0, char_octet_length=800, cumulative avg row len=725
    3 Index(es) found:
      Index: PK_XXX_Interface, type=1, ASCENDING, UNIQUE, cardinality=0
    #1 Column 1: InterfaceID
      Index: IX_TableID, type=3, ASCENDING, NON-UNIQUE, cardinality=0
    #1 Column 3: TableID
      Index: IX_TableName, type=3, ASCENDING, NON-UNIQUE, cardinality=0
    #1 Column 2: TableName
    Exiting hgotcis, rc=0 at 2014/09/22-13:35:08

  • ODBC functions SQLExecDirectW and SQLExecute functions return error:"DIAG [22001] [Microsoft][SQL Server Native Client 10.0]String data, right truncation (0) "

    Problem Description:
    ODBC functions SQLExecDirectW and SQLExecute functions return error:”DIAG [22001] [Microsoft][SQL Server Native Client 10.0]String data, right
    truncation (0) “. When we enable tracing in the ODBC administrator, in the SQL.log we see that values for the arguments: ColumnSize, BufferLength, and StrLen_or_IndPtr of ODBC function SQLBindParameter are not being displayed.
    Environment Used:
    OS: Microsoft Windows Server 2003 R2 Standard x64 Edition.
    Complier: Microsoft Visual Studio 2008 SP1 for x64.
    Database: Microsoft SQL Server 2008
    MDAC: Microsoft Data Access Components SDK 2.8
    Note: This problem is seen only in our 64bit application. However, in 32bit
    SQLExecDirectW and SQLExecute functions return successfully.
    As we could not find the values of 6<sup>th</sup>, 9<sup>th</sup> and 10<sup>th</sup> arguments(ColumnSize,
    BufferLength, and StrLen_or_IndPtr) passed to
    SQLBindParameter in the ODBC traces for 64bit, we are not sure whether the values for the above mentioned arguments are received correctly by SQLBindParameter or not. This information would help us to debug further. So, could you please let us know why
    these values are not displayed.
    1)Here is the extract of the SQL.log file for 32bit where the values for SQLULEN , SQLLEN and SQLLEN* are displayed properly:
    PR0CNFG 1028-15f0 ENTER SQLBindParameter
    HSTMT 0x006FBDD8
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN 23
    SWORD 0
    PTR 0x0595EBBA
    SQLLEN 46
    SQLLEN * 0x05A5FB00
    2)Here is the extract of the SQL.log file for 64bit where the values for SQLULEN , SQLLEN are not displayed properly and
    SQLExecDirectW function return error:”DIAG
    [22001] [Microsoft][SQL Server Native Client 10.0]String data, right truncation (0) “. :
    PR0CNFG a78-fe4 ENTER SQLBindParameter
    HSTMT 000000000431D2F0
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN SQLULEN SWORD 0
    PTR 0x0000000005364EFA
    SQLLEN SQLLEN
    SQLLEN * SQLLEN *
    PR0CNFG a78-fe4 EXIT SQLBindParameter with return code 0 (SQL_SUCCESS)
    HSTMT 000000000431D2F0
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN SQLULEN SWORD 0
    PTR 0x0000000005364EFA
    SQLLEN SQLLEN SQLLEN *

    Hi Nalsr,
    From my research, I found:
    "[Microsoft][ODBC SQL Server Driver]String
    data right truncation" error may be returned from a call to
    SQLBindParameter if the size of the string parameter being used is greater than the size of the column being compared to. In other words if the
    string size of the <expression> to the left of the <comparison_operator> is less than the
    string size of the <expression> to the
    right, ODBC may return this error.
    The resolution is to make the string size of the <expression> to the
    right of the <comparison_operator> less than or equal to the
    string size of the <expression> on the left.
    It is difficult to track down this type of problem when third party development applications are being used. ODBC Trace can be used to help determine if this problem is occuring.
    Here is an example where the customer has submitted a query "select count(*) from type1 where type1 = ?", type1 is varchar(5) and the
    data type being passed by the application is char[9].
    Here is the relevant portion of the trace. The following information from the "exit" of SQLDescribeParam
    SWORD * 0x0095e898 (12)
    UDWORD * 0x0095e880 (5)
    Maps to the following with the actual value in parenthesis - SQL_VARCHAR Size 5:
    SQLSMALLINT *DataTypePtr
    SQLUINTEGER *ParameterSizePtr
    The "exit" value from SQLBindParameter provides the following
    information:
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD 1 <SQL_C_CHAR>
    SQL Data Type SWORD 12 <SQL_VARCHAR>
    Parameter Size UDWORD 5
    SWORD 0
    Value PTR 0x0181c188
    Value Buffer Size SDWORD 5
    String Length SDWORD * 0x0181c103 (9)
    The string length parameter is the length of the
    string being bound to the parameter, in this instance there is a size mismatch which results in the SQLError and the SQLErrorW with the message "[Microsoft][ODBC SQL Server
    Driver]String data
    right truncation" .
    Hope this could be helpful.
    Best regards,
    Halin Huang

  • Explain plan cardinallity is way off compared to actual rows being returned

    Database version 11.2.0.3
    We have a small but rapidly growing datawarehouse which has OBIEE as its front end reporting tool. Our DBA has set up a automatic stats gathering method in OEM and we can see that it run and gathers stats on stale objects on a regular basis. So we know the statistics are upto date.
    In checking some slow queries I can see that the cardinality being reported in explain plans is way off compared to what is actually being returned.
    For example the actual number of rows returned are 8000 but the cardinality estimate is > 300,000.
    Now as per an Oracle White paper(The Oracle Optimizer Explain the Explain Plan) having "multiple single column predicates on a single table" can affect cardinality estimates and in case of our query that is true. Here is the "WHERE Clause section" of the query
    SQL> select D1.c1  as c1,
      2         D1.c2  as c2,
      3         D1.c3  as c3,
      4         D1.c4  as c4,
      5         D1.c5  as c5,
      6         D1.c6  as c6,
      7         D1.c7  as c7,
      8         D1.c8  as c8,
      9         D1.c9  as c9,
    10         D1.c10 as c10,
    11         D1.c11 as c11,
    12         D1.c12 as c12,
    13         D1.c13 as c13,
    14         D1.c14 as c14,
    15         D1.c15 as c15,
    16         D1.c16 as c16
    17    from (select D1.c4 as c1,
    18                 D1.c5 as c2,
    19                 D1.c3 as c3,
    20                 D1.c1 as c4,
    21                 D1.c6 as c5,
    22                 D1.c7 as c6,
    23                 D1.c2 as c7,
    24                 D1.c8 as c8,
    25                 D1.c9 as c9,
    26                 D1.c10 as c10,
    27                 D1.c9 as c11,
    28                 D1.c11 as c12,
    29                 D1.c2 as c13,
    30                 D1.c2 as c14,
    31                 D1.c12 as c15,
    32                 'XYZ' as c16,
    33                 ROW_NUMBER() OVER(PARTITION BY D1.c2, D1.c3, D1.c4, D1.c5, D1.c6, D1.c7, D1.c8, D1.c9, D1.c10, D1.c11, D1.c12 ORDER BY D1.c2 ASC, D1.c3 ASC, D1.c4 ASC, D1.c5 ASC, D1.c6 ASC, D1.c
    ASC, D1.c8 ASC, D1.c9 ASC, D1.c10 ASC, D1.c11 ASC, D1.c12 ASC) as c17
    34            from (select distinct D1.c1 as c1,
    35                                  D1.c2 as c2,
    36                                  'CHANNEL1' as c3,
    37                                  D1.c3 as c4,
    38                                  D1.c4 as c5,
    39                                  D1.c5 as c6,
    40                                  D1.c6 as c7,
    41                                  D1.c7 as c8,
    42                                  D1.c8 as c9,
    43                                  D1.c9 as c10,
    44                                  D1.c10 as c11,
    45                                  D1.c11 as c12
    46                    from (select sum(T610543.GLOBAL1_EXCHANGE_RATE * case
    47                                       when T610543.X_ZEB_SYNC_EBS_FLG = 'Y' then
    48                                        T610543.X_ZEB_AIA_U_REVN_AMT
    49                                       else
    50                                        0
    51                                     end) as c1,
    52                                 T536086.X_ZEBRA_TERRITORY as c2,
    53                                 T526821.LEVEL9_NAME as c3,
    54                                 T526821.LEVEL1_NAME as c4,
    55                                 T577698.PER_NAME_FSCL_YEAR as c5,
    56                                 T577698.FSCL_QTR as c6,
    57                                 T31796.X_ZEBRA_TERRITORY as c7,
    58                                 T31796.X_OU_NUM as c8,
    59                                 T664055.TERRITORY as c9,
    60                                 T536086.X_OU_NUM as c10,
    61                                 T526821.LEVEL4_NAME as c11
    62                            from W_INT_ORG_D        T613144 /* Dim_ZEB_W_INT_ORG_D_POS_Client_Attr_Direct */,
    63                                 W_ZEBRA_REGION_D   T664055 /* Dim_ZEB_W_ZEBRA_REGION_D_POS_Client_Direct */,
    64                                 W_DAY_D            T577698 /* Dim_ZEB_W_DAY_D_Order_Invoice_Date */,
    65                                 WC_PRODUCT_HIER_DH T526821 /* Dim_WC_PRODUCT_HIER_DH */,
    66                                 W_PRODUCT_D        T32069 /* Dim_W_PRODUCT_D */,
    67                                 W_ORG_D            T31796,
    68                                 W_ORG_D            T536086 /* Dim_ZEB_W_ORG_D_Reseller */,
    69                                 W_ORDERITEM_TMP_F      T610543 /* Fact_ZEB_W_ORDERITEM_F_Direct */
    70                           where (T610543.PR_OWNER_BU_WID = T613144.ROW_WID and
    71                                 T577698.ROW_WID =
    72                                 T610543.X_ZEB_AIA_TRXN_DT_WID and
    73                                 T32069.ROW_WID = T526821.PROD_WID and
    74                                 T32069.ROW_WID = T610543.ROOT_LN_PROD_WID and
    75                                 T536086.ROW_WID = T610543.ACCNT_WID and
    76                                 T31796.DATASOURCE_NUM_ID =
    77                                 T610543.DATASOURCE_NUM_ID and
    78                                 T31796.INTEGRATION_ID = T610543.VIS_PR_BU_ID and
    79                                 T536086.DELETE_FLG = 'N' and
    80                                 T610543.X_ZEB_DELETE_FLG = 'N' and
    81                                 T613144.X_ZEB_REGION_WID = T664055.ROW_WID and
    82                                 T577698.FSCL_DAY_OF_YEAR < 97 and
    83                                 '2006' < T577698.PER_NAME_FSCL_YEAR and
    84                                 T536086.X_OU_NUM <> '11073' and
    85                                 T536086.X_ZEBRA_TERRITORY !=
    86                                 'XX23' and
    87                                 T536086.X_OU_NUM != '56791647728774' and
    88                                 T536086.X_OU_NUM != '245395890' and
    89                                 T536086.X_ZEBRA_TERRITORY !=
    90                                 'STRATEGIC ACCTS 2' and
    91                                 T526821.LEVEL2_NAME != 'Charges' and
    92                                 T526821.LEVEL9_NAME != 'Unspecified' and
    93                                 T536086.X_ZEBRA_TERRITORY !=
    94                                 'XX1' and T536086.X_ZEBRA_TERRITORY !=
    95                                 'XX2' and T536086.X_ZEBRA_TERRITORY !=
    96                                 'XX3' and T536086.X_ZEBRA_TERRITORY !=
    97                                 'XX4' and
    98                                 (T536086.X_ZEBRA_TERRITORY in
    99                                 ( ... In List of 22 values )) and
    125                                 T32069.X_ZEB_EBS_PRODUCT_TYPE is null)
    126                           group by T31796.X_ZEBRA_TERRITORY,
    127                                    T31796.X_OU_NUM,
    128                                    T526821.LEVEL1_NAME,
    129                                    T526821.LEVEL4_NAME,
    130                                    T526821.LEVEL9_NAME,
    131                                    T536086.X_OU_NUM,
    132                                    T536086.X_ZEBRA_TERRITORY,
    133                                    T577698.FSCL_QTR,
    134                                    T577698.PER_NAME_FSCL_YEAR,
    135                                    T664055.TERRITORY) D1) D1) D1
    136   where (D1.c17 = 1)
    137  /
    Elapsed: 00:00:35.19
    Execution Plan
    Plan hash value: 3285002974
    | Id  | Operation                                         | Name               | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
    |   0 | SELECT STATEMENT                                  |                    |  2145M|  2123G|       |   612K  (1)| 03:03:47 |       |       |        |      |            |
    |   1 |  PX COORDINATOR                                   |                    |       |       |       |            |          |       |       |        |      |            |
    |   2 |   PX SEND QC (RANDOM)                             | :TQ10012           |  2145M|  2123G|       |   612K  (1)| 03:03:47 |       |       |  Q1,12 | P->S | QC (RAND)  |
    |*  3 |    VIEW                                           |                    |  2145M|  2123G|       |   612K  (1)| 03:03:47 |       |       |  Q1,12 | PCWP |            |
    |*  4 |     WINDOW NOSORT                                 |                    |  2145M|   421G|       |   612K  (1)| 03:03:47 |       |       |  Q1,12 | PCWP |            |
    |   5 |      SORT GROUP BY                                |                    |  2145M|   421G|   448G|   612K  (1)| 03:03:47 |       |       |  Q1,12 | PCWP |            |
    |   6 |       PX RECEIVE                                  |                    |  2145M|   421G|       |  1740  (11)| 00:00:32 |       |       |  Q1,12 | PCWP |            |
    |   7 |        PX SEND HASH                               | :TQ10011           |  2145M|   421G|       |  1740  (11)| 00:00:32 |       |       |  Q1,11 | P->P | HASH       |
    |*  8 |         HASH JOIN BUFFERED                        |                    |  2145M|   421G|       |  1740  (11)| 00:00:32 |       |       |  Q1,11 | PCWP |            |
    |   9 |          PX RECEIVE                               |                    |   268K|  7864K|       |    93   (2)| 00:00:02 |       |       |  Q1,11 | PCWP |            |
    |  10 |           PX SEND HASH                            | :TQ10009           |   268K|  7864K|       |    93   (2)| 00:00:02 |       |       |  Q1,09 | P->P | HASH       |
    |  11 |            PX BLOCK ITERATOR                      |                    |   268K|  7864K|       |    93   (2)| 00:00:02 |       |       |  Q1,09 | PCWC |            |
    |  12 |             TABLE ACCESS FULL                     | W_ORG_D            |   268K|  7864K|       |    93   (2)| 00:00:02 |       |       |  Q1,09 | PCWP |            |
    |  13 |          PX RECEIVE                               |                    |   345K|    59M|       |  1491   (2)| 00:00:27 |       |       |  Q1,11 | PCWP |            |
    |  14 |           PX SEND HASH                            | :TQ10010           |   345K|    59M|       |  1491   (2)| 00:00:27 |       |       |  Q1,10 | P->P | HASH       |
    |* 15 |            HASH JOIN BUFFERED                     |                    |   345K|    59M|       |  1491   (2)| 00:00:27 |       |       |  Q1,10 | PCWP |            |
    |  16 |             PX RECEIVE                            |                    |  1321 | 30383 |       |     2   (0)| 00:00:01 |       |       |  Q1,10 | PCWP |            |
    |  17 |              PX SEND BROADCAST                    | :TQ10006           |  1321 | 30383 |       |     2   (0)| 00:00:01 |       |       |  Q1,06 | P->P | BROADCAST  |
    |  18 |               PX BLOCK ITERATOR                   |                    |  1321 | 30383 |       |     2   (0)| 00:00:01 |       |       |  Q1,06 | PCWC |            |
    |  19 |                TABLE ACCESS FULL                  | W_ZEBRA_REGION_D   |  1321 | 30383 |       |     2   (0)| 00:00:01 |       |       |  Q1,06 | PCWP |            |
    |* 20 |             HASH JOIN                             |                    |   345K|    52M|       |  1488   (2)| 00:00:27 |       |       |  Q1,10 | PCWP |            |
    |  21 |              JOIN FILTER CREATE                   | :BF0000            |  9740 |   114K|       |     2   (0)| 00:00:01 |       |       |  Q1,10 | PCWP |            |
    |  22 |               PX RECEIVE                          |                    |  9740 |   114K|       |     2   (0)| 00:00:01 |       |       |  Q1,10 | PCWP |            |
    |  23 |                PX SEND HASH                       | :TQ10007           |  9740 |   114K|       |     2   (0)| 00:00:01 |       |       |  Q1,07 | P->P | HASH       |
    |  24 |                 PX BLOCK ITERATOR                 |                    |  9740 |   114K|       |     2   (0)| 00:00:01 |       |       |  Q1,07 | PCWC |            |
    |  25 |                  TABLE ACCESS FULL                | W_INT_ORG_D        |  9740 |   114K|       |     2   (0)| 00:00:01 |       |       |  Q1,07 | PCWP |            |
    |  26 |              PX RECEIVE                           |                    |   344K|    47M|       |  1486   (2)| 00:00:27 |       |       |  Q1,10 | PCWP |            |
    |  27 |               PX SEND HASH                        | :TQ10008           |   344K|    47M|       |  1486   (2)| 00:00:27 |       |       |  Q1,08 | P->P | HASH       |
    |  28 |                JOIN FILTER USE                    | :BF0000            |   344K|    47M|       |  1486   (2)| 00:00:27 |       |       |  Q1,08 | PCWP |            |
    |* 29 |                 HASH JOIN BUFFERED                |                    |   344K|    47M|       |  1486   (2)| 00:00:27 |       |       |  Q1,08 | PCWP |            |
    |  30 |                  JOIN FILTER CREATE               | :BF0001            | 35290 |   964K|       |    93   (2)| 00:00:02 |       |       |  Q1,08 | PCWP |            |
    |  31 |                   PX RECEIVE                      |                    | 35290 |   964K|       |    93   (2)| 00:00:02 |       |       |  Q1,08 | PCWP |            |
    |  32 |                    PX SEND HASH                   | :TQ10004           | 35290 |   964K|       |    93   (2)| 00:00:02 |       |       |  Q1,04 | P->P | HASH       |
    |  33 |                     PX BLOCK ITERATOR             |                    | 35290 |   964K|       |    93   (2)| 00:00:02 |       |       |  Q1,04 | PCWC |            |
    |* 34 |                      TABLE ACCESS FULL            | W_ORG_D            | 35290 |   964K|       |    93   (2)| 00:00:02 |       |       |  Q1,04 | PCWP |            |
    |  35 |                  PX RECEIVE                       |                    |   344K|    38M|       |  1392   (2)| 00:00:26 |       |       |  Q1,08 | PCWP |            |
    |  36 |                   PX SEND HASH                    | :TQ10005           |   344K|    38M|       |  1392   (2)| 00:00:26 |       |       |  Q1,05 | P->P | HASH       |
    |  37 |                    JOIN FILTER USE                | :BF0001            |   344K|    38M|       |  1392   (2)| 00:00:26 |       |       |  Q1,05 | PCWP |            |
    |* 38 |                     HASH JOIN BUFFERED            |                    |   344K|    38M|       |  1392   (2)| 00:00:26 |       |       |  Q1,05 | PCWP |            |
    |  39 |                      PX RECEIVE                   |                    | 93791 |  4671K|       |     7   (0)| 00:00:01 |       |       |  Q1,05 | PCWP |            |
    |  40 |                       PX SEND HASH                | :TQ10001           | 93791 |  4671K|       |     7   (0)| 00:00:01 |       |       |  Q1,01 | P->P | HASH       |
    |  41 |                        PX BLOCK ITERATOR          |                    | 93791 |  4671K|       |     7   (0)| 00:00:01 |       |       |  Q1,01 | PCWC |            |
    |* 42 |                         TABLE ACCESS FULL         | WC_PRODUCT_HIER_DH | 93791 |  4671K|       |     7   (0)| 00:00:01 |       |       |  Q1,01 | PCWP |            |
    |* 43 |                      HASH JOIN                    |                    |   894K|    57M|       |  1384   (2)| 00:00:25 |       |       |  Q1,05 | PCWP |            |
    |  44 |                       JOIN FILTER CREATE          | :BF0002            |   243K|  1904K|       |    48   (3)| 00:00:01 |       |       |  Q1,05 | PCWP |            |
    |  45 |                        PX RECEIVE                 |                    |   243K|  1904K|       |    48   (3)| 00:00:01 |       |       |  Q1,05 | PCWP |            |
    |  46 |                         PX SEND HASH              | :TQ10002           |   243K|  1904K|       |    48   (3)| 00:00:01 |       |       |  Q1,02 | P->P | HASH       |
    |  47 |                          PX BLOCK ITERATOR        |                    |   243K|  1904K|       |    48   (3)| 00:00:01 |       |       |  Q1,02 | PCWC |            |
    |* 48 |                           TABLE ACCESS FULL       | W_PRODUCT_D        |   243K|  1904K|       |    48   (3)| 00:00:01 |       |       |  Q1,02 | PCWP |            |
    |  49 |                       PX RECEIVE                  |                    |   894K|    50M|       |  1336   (2)| 00:00:25 |       |       |  Q1,05 | PCWP |            |
    |  50 |                        PX SEND HASH               | :TQ10003           |   894K|    50M|       |  1336   (2)| 00:00:25 |       |       |  Q1,03 | P->P | HASH       |
    |  51 |                         JOIN FILTER USE           | :BF0002            |   894K|    50M|       |  1336   (2)| 00:00:25 |       |       |  Q1,03 | PCWP |            |
    |* 52 |                          HASH JOIN                |                    |   894K|    50M|       |  1336   (2)| 00:00:25 |       |       |  Q1,03 | PCWP |            |
    |  53 |                           PX RECEIVE              |                    |   292 |  3504 |       |   136   (0)| 00:00:03 |       |       |  Q1,03 | PCWP |            |
    |  54 |                            PX SEND BROADCAST LOCAL| :TQ10000           |   292 |  3504 |       |   136   (0)| 00:00:03 |       |       |  Q1,00 | P->P | BCST LOCAL |
    |  55 |                             PX BLOCK ITERATOR     |                    |   292 |  3504 |       |   136   (0)| 00:00:03 |       |       |  Q1,00 | PCWC |            |
    |* 56 |                              TABLE ACCESS FULL    | W_DAY_D            |   292 |  3504 |       |   136   (0)| 00:00:03 |       |       |  Q1,00 | PCWP |            |
    |  57 |                           PX BLOCK ITERATOR       |                    |  4801K|   215M|       |  1199   (2)| 00:00:22 |     1 |    11 |  Q1,03 | PCWC |            |
    |* 58 |                            TABLE ACCESS FULL      | W_ORDERITEM_TMP_F  |  4801K|   215M|       |  1199   (2)| 00:00:22 |     1 |    44 |  Q1,03 | PCWP |            |
    Note
       - dynamic sampling used for this statement (level=5)
    Statistics
            498  recursive calls
           2046  db block gets
        1193630  consistent gets
          74398  physical reads
              0  redo size
         655170  bytes sent via SQL*Net to client
          11761  bytes received via SQL*Net from client
            541  SQL*Net roundtrips to/from client
             64  sorts (memory)
              0  sorts (disk)
           8090  rows processed
    SQL>So my question is if, cardinality estimates are way off, is that an indicator that the explain plans being generated are sub-optimal?
    Can you provide me with some tips or links to blog post or books on how I approach tuning such queries where cardinalities are not good?
    Edited by: qqq on Apr 7, 2013 2:27 PM

    As already asked in your other thread:
    Please see the FAQ for how to post a tuning request and the information that you need to provide.
    Part of that information is:
    1. DDL for the table and indexes
    2. The query being used
    3. row counts for the table and for the predicates used in the query
    4. info about stats. You did update the table and index stats didn't you?
    5. The 'actual' execution plans.
    An explain plan just shows what Oracle 'thinks' it is going to do. The actual plans show what Oracle actually 'did' do. Just because Oracle expected to save doesn't mean the savings were actually achieved.
    When you post the plans use on the line before and on the line after to preserve formatting.
    Your partial code is virtually unusable because of the missing conditions in the predicates. You need to use '!=' for 'not equals' if that's what those missing conditions are.
    Please edit your post to use code tags, add the missing conditions and provide the other information needed for a tuning request.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to avoid seriously bad behaviour in 11g ODBC reading TIMESTAMP fields?

    Hi everyone.
    I thought that we'd got past all the TIMESTAMP related problems in the ODBC driver, but here is another one!
    I have a problem which I'd like to share, hoping that someone has an idea why this happens... I have an expensive workaround, but maybe someone has a better idea.
    It might also help any people who are looking for otherwise unexplained crashes (Microsoft Visual C++ just terminates a program without comment if the described behaviour happens to overwrite a buffer overrun marker on the stack, for example).
    Using 11g ODBC driver, client and server 11.2.0.1 ...
    with table definitions like...
    create table X (A TIMESTAMP);
    session settings like:
    alter session set NLS_TIMESTAMP_FORMAT='RRRR-MM-DD HH24.MI.SS.FF6' NLS_DATE_FORMAT='RRRR-MM-DD HH24.MI.SS'";
    and an application select statement like:
    select A from X;
    (Notice that "select CURRENT_TIMESTAMP from DUAL" does NOT exhibit this behaviour - it ignores the NLS_TIMESTAMP_FORMAT, that's another story).
    An ODBC application with the following column bind
    SQLCHAR chTS[27];
    long cbTS;
    odbcrc = SQLBindCol(hstmt, 1, SQL_C_CHAR, chTS, 27, &cbTS);
    odbcrc = SQLExecute(hstmt);
    odbcrc = SQLFetch(hstmt);
    will ** OVERWRITE ** memory outside of the 27 character buffer.
    Observed in a debugger and checked again using a structure with prefix and suffix fields around the the chTS field can prove that the OCI is actually writing the full 30 character (29 plus terminator) time stamp with 9 decimal place seconds value into the user provided (27 byte!) field and then truncating it to the requested 26 bytes.
    We have a workaround in that a statement with "select to_char(A)" does not display this behaviour but it means that we need to replace all our (currently mostly database non-specific) SQL with Oracle specific SQL just to handle this. Anyone have a better idea?
    I'd open a bug for this, but just at the moment I don't have access to our full support identifier, one of my colleagues has this and is not available. Whatever else it does, the ODBC driver should not write outside the provided buffer.

    You need to specify the characterset in the CREATE TABLE statement. See this MOS Doc
    KUP-4021 And KUP-4023 When Selecting From An External Table Containing Diacritics (Doc ID 754396.1)
    HTH
    Srini

  • Sudden failure of 32-bit Oracle 11g ODBC driver in 64-Bit Win7 box

    I had a working ODBC connection to an Oracle DB using the 32-bit 11g ODBC driver. Suddenly I was unable to connect, getting the error:
    Testing Connection
    Unable to connect
    SQLState=S1000
    [Oracle][ODBC][Ora]ORA-00604: error occurred at recursive SQL level 1
    ORA-12899: value too large for column "SYSTEM"."LOGON_AUDIT"."PROCESS" (actual: 13, maximum: 12)
    ORA-06512: at line 51
    OK
    For a strange twist, the connection works perfectly with the workstation in Safe Mode. I've tried disabling Symantec Endpoint Protection, and adjusting the Firewall, but so far no dice. Any advice I can get will be appreciated!
    Thanks
    Keith

    How do you get the 32bit client to communicate with the 64bit Oracle instance on the same windows box? After installing the 64 bit db and client (on a developer desktop), I installed the 32 bit client to a different oracle home. I could not get it to connect to the listener - what am I doing wrong? Should I reinstall it to the 64bit home - I'm afraid that'll kill everything though.
    Also, I think I'm correct in this, but not sure: any 32bit app must use the 32bit client on the 64bit box. MS Access needs 32bit ODBC, which needs 32bit client, etc.
    Thx,
    Jeff

  • Column order is changed in criteria tab ,result tab column order unchanged

    I created a report in sample database with these columns in 11.1.1.6
    1- C50 Region 2 D1 Office, 3 P1 Product 4 1-Revenue and 5 C1 Customer Name
    Hit Results and I can see the result in this order.
    If I change column order in result tab to say 1,5,2,3,4, result tab table view is updated. Now if I go back to criteria tab, column order remains the same ( 1,2,3,4,5)
    This may be expected functionality in 11.1.1.6 but was not the case in 10g. This may be due to changes allowed in html layer.
    Now if I go back to criteria tab and reorder columns (say 1,3,2,4,5) and then click result, result tab columns are not ordered as set here. Result tab continues to show 1,2,3,4,5
    I saved the report with order 1,3,2,4,5 and log back in, order remains 1,2,3,45/ I believe if I restart presentation services, it will be come OK. The only way is to create a new report that I know now other than restarting presentation service.
    Question
    Have you observed this?
    If yes, what is the solution, how can result tab refresh with the order of the columns in criteria tab?
    Bhupendra

    Hi,
    In OBI 11g,the column order in the criteria tab and the results tab are not coupled to each other.
    When you create the report for the first time, both are in sync. If you need to reorder the columns, goto result tab and click on edit report, in the columns and measures section of the report, reorder the columns the way you desire.
    Save the report and the report should have the columns in the order you have set.
    P.S : this is not a bug !
    Thanks,
    Vineeth

  • Incorrect column names returned using OCIDescribeAny

    I am trying to retrieve column names using OCIDescribeAny and OCIAttrGet api calls.
    The column names and the lengths of the column names returned by OCIAttrGet calls are usually correct.
    Except when the length of column names are divisible by 4, an extra tab is padded at the end of the returned string by OCIAttrGet.
    The length returned by the call is fine.
    Example 1.
    Column Name:
    CITY
    Results Returned by OCIAttrGet:
    column name: CITY\t
    column length: 4
    Example 2.
    Column Name:
    PHONE_NUMBER
    Results Returned by OCIAttrGet:
    column name: PHONE_NUMBER\t
    column length: 12
    Does anyone has experience with this?
    Edited by: simon780 on Mar 13, 2010 2:48 PM
    Edited by: simon780 on Mar 13, 2010 4:03 PM

    Thank you for answering my question, I thought I was doing something wrong, since this is my very first time using oci.
    I do see non-null terminated strings mentioned from places to places on the oracle docs, but I don't see it mentioned specifically on the attribute OCI_ATTR_NAME.
    Anyway, as long as I have the string length returned by the function call, then it's all good. Thank you again!!

  • Why does iTunes/iPhone 4S insist it can't find a song on my PC or my phone when it is on both? This is resulting in me being unable to use the ringtones I created from these songs, but I can still play the songs.

    OK, so I'm clearly a newb. I thought if I asked a question, it would post, and now I'm being told to post a comment, so I'm asking the same question again. Sorry I sound like an idiot. I'm new to this apple/mac stuff.
    Why does iTunes/iPhone 4S insist it can't find a song on my PC or my phone when it is on both? This is resulting in me being unable to use the ringtones I created from these songs, but I can still play the songs.

    If you have added the ringtone file correctly to iTunes, it will appear under iTunes 'Tones' library.
    If you don't find Tones library in iTunes, go to iTunes menu EDIT/PRFERENCES under GENERAL tab, check the Tones Box under Library source to display Tones library in iTunes.
    iTunes accepts only m4r file as ringtone and has to be less than 40secs.

  • I couldn't log into my apple account on my iPad, then i couldn't unlock it resulting in it being disabled, however it's the same as my iPhones password, I then called apple, i was hung up on twice and they said it will cost £70 to fix THEIR problem, help?

    I couldn't log into my apple account on my iPad, then i couldn't unlock it resulting in it being disabled, however it's the same as my iPhones password, I then called apple, i was hung up on twice and they said it will cost £70 to fix THEIR problem, help?

    If you cannot remember the passcode, you will need to restore your device using the computer with which you last synced it. This allows you to reset your passcode and resync the data from the device (or restore from a backup).
    If you restore on a different computer that was never synced with the device, you will be able to unlock the device for use and remove the passcode, but your data will not be present.
    You may have to force iPad/iPod into Recovery Mode
    http://support.apple.com/kb/ht4097

  • How to retrieve multiple columns using "returning" in the Insert query.

    hi,
    wanted to know how to retrieve multiple columns using "returning" in the Insert Query.
    For retrieving one column we write the query as follows:
    Insert into TABLE values(1,2,3,4) returning COLUMN1 into PARAMETER
    But can we retrive multiple columns in the same query?
    am using oracle 10g and coding in .NET

    Hi,
    You can definetely get multiple values from a single query using the 'returning' clause.
    Eg : insert into emp (empno, ename, job, deptno) values (7324,'ADAM','MARKETING',30) returning ename, deptno into var1, var2; PN : var1 & var2 to be declared as varchar2 & number respectively.
    More insight into the 'RETURNING' clause in this link.
    http://www.samoratech.com/PLSQL/swArtPLSQLReturn.htm
    Regards,
    Bhanu.

  • Oracle 10g client with 11g ODBC.

    We have the Oracle 10g client on users PCs to use the 10g ODBC to connect to a 10g (10.2.0.4.0) database. Now we are upgrading to an Oracle 11g database, 11.2.0.3.0. Is it possible to install the 11g ODBC drivers onto the users PCs without installing the full Oracle 11g client?

    Unless you want to go down the Instant Client path, no.
    However, there is probably no need to do anything to the clients. Any version of the 10g client should have no difficulty communicating with an 11.2 database. There is likely no need to upgrade the existing clients when the database is upgraded. The only exception would be if your application is trying to use some 11.2 feature that requires changes on the client to support-- those are pretty rare in this instance.
    You may want to roll out 11.2 clients on new machines as they come online but that's likely about all that you need to do.
    Justin

  • Oracle 11g ODBC for Windows NT and Windows 95

    Hi
    Please does anyone knows where can I find this ODBC ? Oracle 11g ODBC for Windows NT and Windows 95
    I have test some ODBC from the Oracle page but doesnt work
    Thank you
    J.A.

    I'm thinking no.
    However I did find this which may help :
    http://www.oracle.com/technetwork/database/windows/odbcfaq-128251.pdf
    I did the search for 16 bit in it and found some interesting information.
    The other piece of information I can share is the Oracle 11 client has issues connecting to Oracle 9.
    An Oracle 10 clients might have a better chance, but the catch is finding it.
    The last client I remember working on these OS's was Oracle 8. But I doubt that will connect to Oracle 11.
    Best Regards
    mseberg
    Edited by: mseberg on Aug 14, 2012 6:06 PM
    Later
    I'm not a huge fan of when they move stuff. This spot feels a little like the island of misfit toys.

  • How to install 11g ODBC client drivers to access OBIEE 11g server?

    I have a user running Microsoft Excel on Wondows XP that wants to use ODBC to access an OBIEE 11g server running on Linux. The OBIEE 11g installation documentation indicates that a full install of OBIEE is required to install OBI client tools (including ODBC drivers). OBIEE version 10 had a separate client installation kit that made it very easy to install ODBC drivers. Does 11g have a client only installation kit like version 10? OR do I really have to perform a full OBIEE install on each client machine just to get the ODBC driver installed?
    Any recommendations on how to install the OBIEE 11g ODBC driver, that DOES NOT require a full OBIEE installation, would be greatly appreciated.
    Thanks,
    Richard Brooks

    Does 11g have a client only installation kit like version 10? No
    do I really have to perform a full OBIEE install on each client machine just to get the ODBC driver installed?Yes
    Any recommendations on how to install the OBIEE 11g ODBC driver, that DOES NOT require a full OBIEE installation, would be greatly appreciated.Wait for the next 11g patch release, it should be fixed.

Maybe you are looking for

  • How do I enter 4 digit passcode in itunes using remote app

    My Apple TV is out of sync with my iPhones and iPad. I was trying to add new phone with the remote app and turned off and back on home sharing trying to find where to enter that 4 digit passcode the app gives on each devioce when you select Add an iT

  • ASCII High Level Specail characters issue in APEX!!

    Hi All, We have created text area in APEX where users can enter content manually or copy the content and paste data. The key word characters are wroking fine, but other than this is not accepting and it is concverting as reverse down question mark. W

  • What's wrong  with the role?

    I create URL iviews and pages, preview , it is OK. Then I create workset, role, and assign to a user. When I login with the account, I can't see the pages. Anybody help?

  • What's best for ganging connections when the TBs offered don't permit multiple connections with 22AWG wire?

    The ATE system I'm working on is using rows as instruments and columns as testpoints with 1129 cards. The Terminal boards used to configure the matrix can't handle multiple 22AWG wires required. Any ideas on how best to gang signals requiring driving

  • Nested substitution methods

    Hello , Does anybody know what the problem might be: This code is used to refresh a variable --When i run this : select '<%=odiRef.getFlexFieldValue("1010", "300" , "USER_EMAIL" )%>' || ' - ' || '<%=odiRef.getUser( "I_USER" )%>' from dual --it works