ORA-29275: partial multibyte character

To whom it may concern,
In our company we are using Oracle 19.0.0.0.0 version.
We have so much entegration with others company, so for this reason we changed our nls_lang format AMERICAN_AMERICA.UTF8.
But after this changes when we click to schedule jobs Toad 15.1.113.1379 show ORA-29275: partial multibyte character.
How can we solve this problem.
We are wating your support,
Best regards.

turn on spool SQL (main menu -> Database -> Spool SQL -> spool to screen).

that will show you the commands that Toad is running.

Post the one here that is causing the error.

Also, what is your database character set?

For what it's worth, my database's character set is AL32UTF8. I never have any problems with unicode characters. The NLS_LANG of my client is AMERICAN_AMERICA.WE8MSWIN1252. I think problems happen when your database is some non-unicode character set and then the data doesn't convert correctly.

hi,
our database character set is UTF8.
my spool information as below.

by the way , when job was working global_uid including as "W Æ «JH°óç ^šæİ "
when i click to schedules job menu toad select all column from SYS.DBA_SCHEDULER_JOBS.
But toad cannot select global_uid.
But pl_sqldeveloper, toad sql_plus are can working and that show this column information as a ""W Æ «JH°óç ^šæİ ".
Toad then cannot select this column and show ORA-29275: partial multibyte character.


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:25.205
Select P.JOB_NAME, P.JOB_TYPE, O.OBJECT_ID, P.JOB_CLASS, P.ENABLED, P.COMMENTS, O.LAST_DDL_TIME, O.CREATED, P.STATE, CAST(P.NEXT_RUN_DATE AS DATE) next_run_date
,O.OWNER
,schedule_type
FROM SYS.DBA_OBJECTS O, SYS.DBA_SCHEDULER_JOBS P
WHERE O.OWNER = P.OWNER
AND O.OBJECT_NAME = P.JOB_NAME
AND O.OBJECT_TYPE = 'JOB'
AND O.OWNER = :own;
:own(VARCHAR[5],IN)='RAPOR'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:26.439
Select
JOB_NAME, JOB_CREATOR, CLIENT_ID, GLOBAL_UID, PROGRAM_OWNER, PROGRAM_NAME,
JOB_TYPE, JOB_ACTION, NUMBER_OF_ARGUMENTS, SCHEDULE_OWNER, SCHEDULE_NAME,
REPEAT_INTERVAL, JOB_CLASS, ENABLED, AUTO_DROP, RESTARTABLE, STATE, JOB_PRIORITY,
RUN_COUNT, MAX_RUNS, FAILURE_COUNT, MAX_FAILURES, RETRY_COUNT,
to_char(MAX_RUN_DURATION) max_run_duration, LOGGING_LEVEL, STOP_ON_WINDOW_CLOSE, INSTANCE_STICKINESS,
SYSTEM, JOB_WEIGHT, NLS_ENV, SOURCE, DESTINATION, COMMENTS, FLAGS,
SCHEDULE_LIMIT, LAST_RUN_DURATION, START_DATE, END_DATE,
LAST_START_DATE, NEXT_RUN_DATE,
to_char(START_DATE, 'yyyy/mm/dd hh24:mi:ss.ff tzr') start_date_toad,
to_char(end_DATE, 'yyyy/mm/dd hh24:mi:ss.ff tzr') end_date_toad
,event_condition, event_queue_owner, event_queue_name, event_queue_agent, raise_events
,credential_owner, credential_name, deferred_drop
,destination_owner, allow_runs_in_restricted_mode
,connect_credential_owner, connect_credential_name, restart_on_recovery, restart_on_failure, store_output
FROM SYS.DBA_SCHEDULER_JOBS
where owner = :o
and Job_name =:nm;
-- ORA-29275: partial multibyte character
:o(VARCHAR[5],IN)='RAPOR'
:nm(VARCHAR[25],IN)='K_KONTROL__202202_1200_99'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:54.564
with ps as
(select 1 as inst_id, sid, serial#, qcsid, qcserial#
from v$px_session
where qcserial# is not null)
Select PS.QCSID as parent_session_sid, PS.QCSERIAL# as parent_session_serial, PS.inst_id as parent_session_instid, rawtohex(s.SADDR) as SADDR, s.SID, s.SERIAL#, s.AUDSID, rawtohex(s.PADDR) as PADDR, s.USER#, s.USERNAME, s.COMMAND, s.OWNERID, s.TADDR, s.LOCKWAIT, s.STATUS, s.SERVER, s.SCHEMA#, s.SCHEMANAME, s.OSUSER, s.PROCESS, s.MACHINE, s.PORT, s.TERMINAL, UPPER(s.PROGRAM) PROGRAM, s.TYPE, s.SQL_ADDRESS, s.SQL_HASH_VALUE, s.SQL_ID, s.SQL_CHILD_NUMBER, s.SQL_EXEC_START, s.SQL_EXEC_ID, s.PREV_SQL_ADDR, s.PREV_HASH_VALUE, s.PREV_SQL_ID, s.PREV_CHILD_NUMBER, s.PREV_EXEC_START, s.PREV_EXEC_ID, s.PLSQL_ENTRY_OBJECT_ID, s.PLSQL_ENTRY_SUBPROGRAM_ID, s.PLSQL_OBJECT_ID, s.PLSQL_SUBPROGRAM_ID, s.MODULE, s.MODULE_HASH, substr(s.ACTION, 1, 64) as ACTION, s.ACTION_HASH, s.CLIENT_INFO, s.FIXED_TABLE_SEQUENCE, s.ROW_WAIT_OBJ#, s.ROW_WAIT_FILE#, s.ROW_WAIT_BLOCK#, s.ROW_WAIT_ROW#, s.TOP_LEVEL_CALL#, s.LOGON_TIME, s.LAST_CALL_ET, s.PDML_ENABLED, s.FAILOVER_TYPE, s.FAILOVER_METHOD, s.FAILED_OVER, s.RESOURCE_CONSUMER_GROUP, s.PDML_STATUS, s.PDDL_STATUS, s.PQ_STATUS, s.CURRENT_QUEUE_DURATION, s.CLIENT_IDENTIFIER, s.BLOCKING_SESSION_STATUS, s.BLOCKING_INSTANCE, s.BLOCKING_SESSION, s.FINAL_BLOCKING_SESSION_STATUS, s.FINAL_BLOCKING_INSTANCE, s.FINAL_BLOCKING_SESSION, s.SEQ#, s.EVENT#, s.EVENT, s.P1TEXT, s.P1, s.P1RAW, s.P2TEXT, s.P2, s.P2RAW, s.P3TEXT, s.P3, s.P3RAW, s.WAIT_CLASS_ID, s.WAIT_CLASS#, s.WAIT_CLASS, s.WAIT_TIME, s.SECONDS_IN_WAIT, s.STATE, s.WAIT_TIME_MICRO, s.TIME_REMAINING_MICRO, s.TIME_SINCE_LAST_WAIT_MICRO, s.SERVICE_NAME, s.SQL_TRACE, s.SQL_TRACE_WAITS, s.SQL_TRACE_BINDS, s.SQL_TRACE_PLAN_STATS, s.SESSION_EDITION_ID, s.CREATOR_ADDR, s.CREATOR_SERIAL#, s.ECID, s.SQL_TRANSLATION_PROFILE_ID, s.PGA_TUNABLE_MEM, s.SHARD_DDL_STATUS, s.CON_ID, s.EXTERNAL_NAME, s.PLSQL_DEBUGGER_CONNECTED
FROM V$SESSION S, PS
WHERE
(
s.STATUS = 'ACTIVE'
) AND ( (s.USERNAME is not null) and (NVL(s.osuser,'x') <> 'SYSTEM') and (s.type <> 'BACKGROUND') )
and PS.SID (+) = S.SID AND PS.SERIAL# (+) = S.SERIAL#
order by USERNAME, OWNERID;


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:54.689
Select schemaname, decode(sql_hash_value, 0, prev_hash_value, sql_hash_value) hash,
decode(sql_hash_value, 0, RawToHex(prev_sql_addr), RawToHex(sql_address)) address
, decode(sql_id, null, prev_sql_id, sql_id) sql_id
, decode(sql_child_number, null, prev_child_number, sql_child_number) sql_child_number
from v$session
where sid = :sid;
:sid(VARCHAR[4],IN)='1367'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:54.705
Select *
from v$sql
where 1=1
and sql_id = :sqlid;
:sqlid(VARCHAR[13],IN)='c07jraadby5w1'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:54.814
Select schemaname, decode(sql_hash_value, 0, prev_hash_value, sql_hash_value) hash,
decode(sql_hash_value, 0, RawToHex(prev_sql_addr), RawToHex(sql_address)) address
, decode(sql_id, null, prev_sql_id, sql_id) sql_id
, decode(sql_child_number, null, prev_child_number, sql_child_number) sql_child_number
from v$session
where sid = :sid;
:sid(VARCHAR[4],IN)='1367'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:14:54.830
Select *
from v$sql
where 1=1
and sql_id = :sqlid;
:sqlid(VARCHAR[13],IN)='c07jraadby5w1'


-- Session: COSKUN.GURPINAR@EGMREP
-- Timestamp: 17:15:45.610
Select P.JOB_NAME, P.JOB_TYPE, O.OBJECT_ID, P.JOB_CLASS, P.ENABLED, P.COMMENTS, O.LAST_DDL_TIME, O.CREATED, P.STATE, CAST(P.NEXT_RUN_DATE AS DATE) next_run_date
,O.OWNER
,schedule_type
FROM SYS.DBA_OBJECTS O, SYS.DBA_SCHEDULER_JOBS P
WHERE O.OWNER = P.OWNER
AND O.OBJECT_NAME = P.JOB_NAME
AND O.OBJECT_TYPE = 'JOB'
AND O.OWNER = :own;
:own(VARCHAR[5],IN)='RAPOR'

Is that Global UID correct? It looks like bad data to me. If your DB charset is UTF8, there shouldn't be any conversion problems.

Do other jobs have that same value in there? If not, you may be able to solve this by dropping and recreating that job. Please let me know.

We are connected to oracle with our active directory username.
My active directory username as below.
CN=Coşkun GÜRPINAR,OU=BT,OU=Departman,OU=EGM,DC=localnet,DC=egm.

So when i was connect to database after then create a new schedule jobs.
SYS.DBA_SCHEDULER_JOBS global_uid include bad character (W__Æ «JH°óç_^šæİ) also toad (schema browser--->>>Schedule Jobs) show error as ORA-29275: partial multibyte character.
But pl/sqldeveloper and sql/plus if even broken that character is showing as (W__Æ «JH°óç_^šæİ).

Why is is using Toad global_uid's column ? (schema browser--->>>Schedule Jobs) section .is it necesary this section ?
and why is dont show us as a bad character ?

Toad isn't using that data. We are just trying to display it on the "info" tab of the schema browser, just as info to the user.

I'll make a change to next beta so that the error is handled more gracefully and won't cause problems.

I don't know about PL/SQL Developer, but SQL*Plus does not use the OCI in the unicode mode, so it just treats the data as ANSI. Toad uses the OCI in the unicode mode so that it can display Unicode data. But if the data is not ANSI, and corrupt, then it's not Unicode either, and you get the ORA-27275.