Oracle
MOSC
has information regarding ORA-03106 when
users try to use the same blind variable
multiple times while executing an UPDATE
with a RETURNING clause in Pro*C.
If you are receiving ORA-03106 in
Precompilers 9.2.0 on any platform, this may
be of interest.
ORA-03106
is seen in Pro*C along with the program
failure after trying to use a variable more
than once along with an UPDATE statement
that has a RETURNING clause:
EXEC SQL UPDATE tab3 SET C1=:col1+:col1
RETURNING C1 into :ret_val;
Cause
Bug 3011364 PRO*C WITH UPDATE CONTAINING
NVL, DECODE & RETURNING GIVES ORA-3106:
Though the
best solution to ORA-03106 in this context
is to upgrade to the 10g release of both
Oracle Client and Server (because the
ORA-03106 is fixed in later versions), you
can also resolve ORA-03106 by storing the
same value in two different bind variables,
sauch as:
EXEC SQL UPDATE tab3 SET C1=:col1+:col2
RETURNING C1 into :ret_val;
On
Oracle Forums, a user is also
encountering ORA-03106, and is informed that
the ORA-03106 error can be caused by a
disconnect of he character sets.