Db2

Db2

Connect with Db2, open source, and other data experts to gain value from your data, share insights, and solve problems.

 View Only

SQL0873N db2exfmt with Codepage 819

  • 1.  SQL0873N db2exfmt with Codepage 819

    Posted Wed March 31, 2021 12:11 PM

    Hi,

    I get SQL0873N when queries UDFs and issuing db2exfmt when a database is configured as follows (SAP Non-Unicode database for JavaStack):

    db2set
    DB2_CDE_WITHOUT_SYNOPSIS=%:/%/D% [DB2_WORKLOAD]
    DB2_TRANSCHEMA_EXCLUDE_STATS=TRUE [DB2_WORKLOAD]
    DB2_USE_FAST_LOG_PREALLOCATION=TRUE [DB2_WORKLOAD]
    DB2_CDE_STMTCACHING=YES [DB2_WORKLOAD]
    DB2_INDEX_PCTFREE_DEFAULT=0 [DB2_WORKLOAD]
    DB2_SKIP_VIEWRECREATE_SAP=TRUE [DB2_WORKLOAD]
    DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=YES [DB2_WORKLOAD]
    DB2_BLOCKING_WITHHOLD_LOBLOCATOR=NO [DB2_WORKLOAD]
    DB2_AGENT_CACHING_FMP=OFF [DB2_WORKLOAD]
    DB2_TRUST_MDC_BLOCK_FULL_HINT=YES [DB2_WORKLOAD]
    DB2_CREATE_INDEX_COLLECT_STATS=YES [DB2_WORKLOAD]
    DB2_ATS_ENABLE=YES [DB2_WORKLOAD]
    DB2_RESTRICT_DDF=YES [DB2_WORKLOAD]
    DB2_DUMP_SECTION_ENV=YES [DB2_WORKLOAD]
    DB2_COMPATIBILITY_VECTOR=4000 [DB2_WORKLOAD]
    DB2_OPT_MAX_TEMP_SIZE=10240 [DB2_WORKLOAD]
    DB2_WORKLOAD=SAP
    DB2_TRUNCATE_REUSESTORAGE=IMPORT [DB2_WORKLOAD]
    DB2_MDC_ROLLOUT=DEFER [DB2_WORKLOAD]
    DB2_ATM_CMD_LINE_ARGS=-include-manual-tables [DB2_WORKLOAD]
    DB2_SKIPINSERTED=YES [DB2_WORKLOAD]
    DB2_VIEW_REOPT_VALUES=YES [DB2_WORKLOAD]
    DB2_OBJECT_TABLE_ENTRIES=65532 [DB2_WORKLOAD]
    DB2_OPTPROFILE=YES [DB2_WORKLOAD]
    DB2_IMPLICIT_UNICODE=YES [DB2_WORKLOAD]
    DB2_BCKP_INCLUDE_LOGS_WARNING=YES [DB2_WORKLOAD]
    DB2_RUNTIME_DEBUG_FLAGS=TOLERANT_FLOAT,DISABLE_BLANK_TOLERANCE [DB2_WORKLOAD]
    DB2STMM=APPLY_HEURISTICS:YES,GLOBAL_BENEFIT_SEGMENT_UNIQUE:YES [DB2_WORKLOAD]
    DB2_INLIST_TO_NLJN=YES [DB2_WORKLOAD]
    DB2_MINIMIZE_LISTPREFETCH=YES [DB2_WORKLOAD]
    DB2_REDUCED_OPTIMIZATION=4,INDEX,JOIN,NO_TQ_FACT,NO_HSJN_BUILD_FACT,STARJN_CARD_SKEW,NO_SORT_MGJOIN,REDUCE_LOCKING,CART OFF,CAP OFF [DB2_WORKLOAD]
    DB2NOTIFYVERBOSE=YES [DB2_WORKLOAD]
    DB2_INTERESTING_KEYS=YES [DB2_WORKLOAD]
    DB2_EVALUNCOMMITTED=YES [DB2_WORKLOAD]
    DB2_EXTENDED_OPTIMIZATION=NLJOIN_KEYCARD,GY_DELAY_EXPAND 1000 [DB2_WORKLOAD]
    DB2_ANTIJOIN=EXTEND [DB2_WORKLOAD]
    DB2COMPOPT=OJSJ,VOLATILETSF,WORKLOADSAP [DB2_WORKLOAD]
    DB2COMM=TCPIP [O]
    DB2AUTOSTART=NO

     

    Database Configuration Settings:
    Description                    Memory Value         Disk Value          
    DB configuration release level 0x1400               0x1400              
    Database release level         0x1400               0x1400              
    Database territory             de                   de                  
    Database code page             819                  819                 
    Database code set              ISO8859-1            ISO8859-1           

    Database country/region code   49                   49                  
    Database collating sequence    IDENTITY             IDENTITY            
    ALT_COLLATE                    IDENTITY_16BIT       IDENTITY_16BIT      

     

    SQL:

    select FS_TOTAL_SIZE, FS_USED_SIZE, (FS_USED_SIZE*100/FS_TOTAL_SIZE), DB_STORAGE_PATH, DBPARTITIONNUM FROM TABLE(ADMIN_GET_STORAGE_PATHS('',-1)) ;

    SQL0873N  Objects encoded with different encoding schemes cannot be referenced
    in the same SQL statement.  SQLSTATE=53090


    Workaround SQL:

    with unicode_fix(x) as (select null from sysibm.sysdummy1)

    select FS_TOTAL_SIZE, FS_USED_SIZE, (FS_USED_SIZE*100/FS_TOTAL_SIZE), DB_STORAGE_PATH, DBPARTITIONNUM FROM TABLE(ADMIN_GET_STORAGE_PATHS('',-1))

     

    The SQL0873N also occurs when I want to explain with db2exfmt

    Explain:

    db2exfmt -1 -d ISO


    Access Plan:
    -----------
        Total Cost:         2.26725e-05
        Query Degree:        1

    Error during Prepare, near line 21789.

    Error Message =
    SQL0873N  Objects encoded with different encoding schemes cannot be
    referenced in the same SQL statement.  SQLSTATE=53090


    SQLCA   
    Size    = 136
    SQLCODE = -873
    Tokens  =
    Function= SQLNQ7B6
    RC      = 0x801A006D = -2145779603
    Reason  = 0x0000 = 0
    Reason2 = 0x0000 = 0
    Line #  = -100
    Warning flags =         

    Executing Connect Reset -- Connect Reset was Successful.

     

    This is a bug in my eyes and the SQL with the CTE is only a workaround and should be solved.

     

    Best regards,

    Gerhard


    #Db2
    #Db2EarlyAccessProgram(EAP)Forum