Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: "No size set for variable length data" Oracle update error with empty string in .NET

Re: "No size set for variable length data" Oracle update error with empty string in .NET

From: DA Morgan <damorgan_at_x.washington.edu>
Date: Fri, 08 Apr 2005 15:43:53 -0700
Message-ID: <1113000012.407095@yasure>


arvee wrote:

> Hi - I'm updating an Oracle table with an empty string and getting the
> error:
>
> An unhandled exception of type 'System.Exception' occurred in
> system.data.dll
> Additional information: Parameter 'p1': No size set for variable length data
> type: String.
>
> The column is nullable and of type varchar2(50). I'm aware that I can store
> DBNull.Value instead and Oracle won't complain, but, I was hoping to avoid
> testing and converting for that condition. It seems the .NET class lib
> should handle empty strings, no? There are times I'd like to throw the
> dataset into a datagrid control and have the user have there way with it,
> therefore, its not ideal to have to validate each string value on the
> update.
>
> Question 1: Is this a bug or am I doing something wrong?
> Question 2: If its a bug, is there an elegant workaround?
>
>
> Sample C# code is:
>
> // create typed dataset (basic customer list: name, address, phone, etc.)
> CustomerDS dsCustomer = new CustomerDS();
>
> // create data adapter
> OracleDataAdapter daCustomers = new OracleDataAdapter("SELECT * FROM
> Customers", connectionString);
>
> // use command builder to create update, insert and delete commands based on
> select
> OracleCommandBuilder cb = new OracleCommandBuilder(daCustomers);
>
> // get some data
> daCustomers.Fill(dsCustomer.CUSTOMERS)
>
> // delete Middle Name, for example
> dsCustomer.CUSTOMERS.Rows[0]["MIDDLE_NAME"] = "";
>
> // store new dataset
> daCustomers.Update(dsCustomer, "Customers");
>
> // boom - get error (even though I put it in a try...catch block!)

Why an empty string? This is Oracle not a Microsoft product: Use NULL.

But this does not seem to be an Oracle error rather a driver error.

What version of Oracle?
What driver?

-- 
Daniel A. Morgan
University of Washington
damorgan_at_x.washington.edu
(replace 'x' with 'u' to respond)
Received on Fri Apr 08 2005 - 17:43:53 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US