Saturday, January 26, 2019

ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column

Hello every one,
I will bring you a issue in to your notice while we performing EBS RPC5 Patch (Recommended patch collections) recently in to one of our test instance. The Patch had been stopped with below error while calling FNDLOAD function observed in patch log file.
ATTENTION: All workers either have failed or are waiting:

 FAILED: file pqpzzcncprg00025.ldt on worker  10.

 FAILED: file jg12acp.ldt  on worker  10.
Hence, we'd reviewed failed worker log file 10 and therefore found below error in LDT logs.
cd $APPL_TOP/admin/<TWO_TASK>/logs

A database error occurred:

 ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
It is because The value for environment variable NLS_LANG is different than the database character set parameter (NLS_CHARACTERSET) when invoking FNDLOAD.
Verified and found the parameter NLS_CHARACTERSET  at DB side has  set to AL32UTF8 and value on application side for this variable set to $NLS_LANG=American_America.UTF8 (echo $NLS_LANG)
Solution
=====
1) Shutdown all workers using adctrl use 3rd option.
    a. adctrl
    b. Select option 3 "Tell worker to shutdown/quit"
Ensure no worker processes are running.
   ps -a | grep adworker
2) Export environment variable  NLS_LANG to a proper value on where patch yet to applied as per value in DB side.
 In our case NLS_LANG  parameter set to below value .
  SQL> SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
VALUE
--------------------------------------------------------------------------------
AL32UTF8

As previously NLS_LANG set to American_America.UTF8 . we need to change below as per above DB parameter.
3) Export NLS_LANG=American_America.AL32UTF8
4) To fix it permanently make changes in Autoconfig TEXT file ( Context File)  where NLS_LANG parameters have different values than expected. If yes, please correct it and run autoconfig.
grep -i NLS_LANG $CONTEXT_FILE
        <NLS_LANG oa_var="s_tools_nlslang">American_America.AL32UTF8</NLS_LANG>
        <NLS_LANG oa_var="s_weboh_nlslang">American_America.AL32UTF8</NLS_LANG>
        <NLS_LANG oa_var="s_nlslang">American_America.AL32UTF8</NLS_LANG>
5) Test if changes to NLS_LANG were successful.
echo $NLS_LANG.
6) Start Patching activity. It will complete successfully.
Thanks,
Regards,
Sreeharsha

No comments:

Post a Comment