Skip to Main Content
IBM Power Ideas Portal


This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace IBM i
Categories Db2 for i
Created by Guest
Created on Oct 14, 2024

Use job default CCSID for SQL (ie. instead of CCSID 65535)

When a system is currently configured with its CCSID set to 65535, this causes issues with SQL functions that require CCSID conversions (ex. JSON, HTTP, ...), for example

Select cast(RESPO00001 as varchar(32)), cast(RESPO00002 as varchar(32))
from Table(QSYS2.HTTP_POST_VERBOSE(
'http://echo.free.beeceptor.com', '{"hello":"world"}', '{"headers": {"Content-Type": "application/json"}}'))


This statement will result in error SQLCODE = 332 SQLSTT = 57017 or "CHARACTER CONVERSION BETWEEN CCSID TO REQUESTED BY IS NOT SUPPORTED" in case the system is running with CCSID 65535.

A job has however also a "Default coded character set identifier" (next to the job CCSID) which is determined by the language ID. This alternative CCSID can be seen on page 4 of DSPJOB OPTION(*DFNA).

It would be nice if SQL could be instructed to use this value instead of the normal CCSID value as it would fix the above statement (now we need to explicitly set the job CCSID before each SQL statement).

I found an attribute SQL_ATTR_NON_HEXCCSID (which seems to allow to use the default CCSID) but I guess that can only be set for SQL CLI, not for embedded or interactive SQL.

It would therefore be handy to have for example an environment variable to do something similar for embedded or interactive SQL


PS. Ideally we would change the QCCSID value but this has been historically set to 65535 and we don't know the impact (and retesting all software is almost impossible) when changing this value.

Idea priority Urgent
  • Guest
    Reply
    |
    Nov 14, 2024

    So why did you do it for SQL CLI via SQL_ATTR_NON_HEXCCSID ?

    I don't understand this non consistent decision.


  • Guest
    Reply
    |
    Nov 14, 2024
    IBM does not intend to provide a solution to this Idea at this time, so it is being closed.

    Having SQL change to use the job's default CCSID could affect the way the database and database applications work on client systems, so it is not something we are willing to do as a global change for the entire IBM i community. This sort of behavior change raises a similar testing concern to what you express for changing the system CCSID but it extends to every client using IBM i. An alternative option where we define a switch that you could set on and off around your problematic workloads would require the same amount of intervention as your CHGJOB work-around, so we will not invest in providing a switch.

    Db2 for i development team
    IBM Power Systems Development
  • Guest
    Reply
    |
    Oct 24, 2024

    Unless I'm mistaken but I don't see how a job description can influence the CCSID of a job.

    I could set it at the userprofile level but than has an impact on the whole job... not a specific SQL function.

    As there's the option to set it at CLI (ie. SQL_ATTR_NON_HEXCCSID) it would be logical to also allow in on for example the SQL Set Option statement in embedded SQL, or via an enviroment variable as suggested earlier.

    Suggested solutions don't have an unpredictable impact in addition.


  • Admin
    Carmelita Ruvalcaba Cevallos
    Reply
    |
    Oct 22, 2024

    The CAAC has reviewed this IBM Idea and recommends that IBM not implement this request.

    Job descriptions can handle this need very well. This may have unpredictable impact on existing applications.

    Background: The COMMON Americas Advisory Council (CAAC) members have a broad range of experience in working with small and medium-sized IBM i customers. CAAC has a key role in working with IBM i development to help assess the value and impact of individual IBM Ideas on the broader IBM i community and has therefore reviewed your Idea.

    For more information about CAAC, see www.common.org/caac

    Carmelita Ruvalcaba - CAAC Program Manager