Re: ORA-06512

From: <stas1979_at_msn.com>
Date: Tue, 17 Feb 2009 12:37:46 -0800 (PST)
Message-ID: <cfd7738f-52de-42e8-863a-77577f361ff6_at_n2g2000vbl.googlegroups.com>



On Feb 12, 12:57 am, "Vladimir M. Zakharychev" <vladimir.zakharyc..._at_gmail.com> wrote:
> On Feb 11, 5:42 pm, stas1..._at_msn.com wrote:
>
>
>
>
>
> > On Feb 11, 3:04 am, "Vladimir M. Zakharychev"
>
> > <vladimir.zakharyc..._at_gmail.com> wrote:
> > > On Feb 10, 6:01 pm, stas1..._at_msn.com wrote:
>
> > > > On Feb 7, 2:50 am, "Vladimir M. Zakharychev"
>
> > > > <vladimir.zakharyc..._at_gmail.com> wrote:
> > > > > On Feb 6, 2:55 am, stas1..._at_msn.com wrote:
>
> > > > > > Hi,
>
> > > > > > I have a .NET application which gets back a CLOB from the oracle
> > > > > > database. I'm using OracleParameter("name", OracleType.Clob) for the
> > > > > > parameter spec. We recently created a new Oracle AL32UTF8 unicode
> > > > > > database, and I'm trying to run the app against the database, however
> > > > > > I'm getting the ORA-06512 exception. The application works fine
> > > > > > against a non-unicode database. The OUT variables in the stored
> > > > > > procedure are defined as CLOB, and actaully when I call the stored
> > > > > > procedure out of PL/SQL Developer the CLOB come back fine. Is there
> > > > > > anything that I need to do in the .NET app to get to work with
> > > > > > unicode?
>
> > > > > ORA-6512 is error stack backtrace message (that is, it's being output
> > > > > for each error stack entry as the error stack of an unhandled
> > > > > exception that was raised in a stored procedure unwinds.) What's the
> > > > > exception itself? Can you provide full error stack and relevant PL/SQL
> > > > > code where it's being raised?
>
> > > > > Regards,
> > > > >    Vladimir M. Zakharychev
> > > > >    N-Networks, makers of Dynamic PSP(tm)
> > > > >    http://www.dynamicpsp.com
>
> > > > Vladimir,
>
> > > > Here is the full error:
>
> > > > ORA-06512: at "SA.PKG_TEST", line 963
> > > > ORA-06512: at line 1
>
> > > >    at System.Data.OracleClient.OracleConnection.CheckError
> > > > (OciErrorHandle errorHandle, Int32 rc)
> > > >    at System.Data.OracleClient.OracleCommand.Execute
> > > > (OciStatementHandle statementHandle, CommandBehavior behavior, Boolean
> > > > needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList&
> > > > resultParameterOrdinals)
> > > >    at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal
> > > > (Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
> > > >    at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
> > > >    at NotificationApp.AudioEmailConfirmations.ProcessOrder(Int64
> > > > alOrderID, Char acRevenueType, Char acConfirmationType)
>
> > > > Thank you!
>
> > > This is still not the exception itself, but the place where it was
> > > raised: at line 963 of the PKG_TEST package. Can you post the code
> > > around (and including) this line and re-check the error message for
> > > the exception? (it could be displayed in the message box title) Seeing
> > > the call to ExecuteNonQuery() may also help. You see, the more
> > > relevant information you provide, the easier it is to diagnose the
> > > issue and suggest corrective action.
>
> > > Regards,
> > >    Vladimir M. Zakharychev
> > >    N-Networks, makers of Dynamic PSP(tm)
> > >    http://www.dynamicpsp.com-Hidequoted text -
>
> > > - Show quoted text -
>
> > Vladimir,
>
> > Line 963 is actually is where the exception is raised. There is
> > actually nothing wrong with the package procedure code, the issue is
> > with .NET Data.Oracle.OracleClient handling the CLOBs that Oracle is
> > returning. When I call the that procedure out of different
> > applications, it comes back fine. It also comes back fine when the
> > database character set is single byte such as WE8ISO8859P1 or
> > WE8MSWIN1252. I think that the problem here is passing CLOBs between a
> > Unicode UTF8 database, (which stores CLOBs in a UCS-2 format doubles
> > the size). I was hoping that someone ran into this issue in the past,
> > and had a quick solution for it. I know that one possible fix is to
> > use the OracleDataReader and pass back the data as a stream, however
> > that would require us to redesign the app. But I guess nothing is
> > easy :)
>
> > Than you!
>
> Well, yes, this is where the exception is raised - but what is that
> exception? ORA-6502 or something else? So far you only gave the error
> stack backtrace, but not the error itself.
>
> This might be a buffer overrun issue (because UTF-8 is multi-byte
> variable-width encoding.) The issue might be related to the way you
> are (or the data provider is) passing the arguments to the procedure
> or allocating variables. Can be easily correctable or can require
> fundamental changes. That's why I'm asking for the .NET code invoking
> the procedure, PL/SQL code around line 963 and the error code that is
> being raised at that line - to figure out what's going wrong and what
> to fix.
>
> Regards,
>    Vladimir M. Zakharychev
>    N-Networks, makers of Dynamic PSP(tm)
>    http://www.dynamicpsp.com- Hide quoted text -
>
> - Show quoted text -

>>Well, yes, this is where the exception is raised - but what is that
>>exception? ORA-6502 or something else? So far you only gave the error
>>stack backtrace, but not the error itself.

There is nothing else. The exception is ORA-6502,

Thank you,
Mike Received on Tue Feb 17 2009 - 14:37:46 CST

Original text of this message