Code: Select all
DB version: Oracle Database 11g Express Edition Release 11.2.0.2.0
Code: Select all
CREATE OR REPLACE TYPE T_ADDR AS OBJECT (
VALUE1 VARCHAR2(23 CHAR),
VALUE2 VARCHAR2(5 CHAR),
VALUE3 VARCHAR2(5 CHAR)
);
Code: Select all
CREATE TABLE TABLE1 (
ID NUMBER(9),
NAME VARCHAR2(40 CHAR),
ADDR T_ADDR)
Code: Select all
Unicode=True
Code: Select all
"ORA-21525: attribute number or (collection element at index) %s violated its constraints"
Code: Select all
Unicode=False
Code: Select all
Object reference not set to an instance of an object.
My code:
Code: Select all
var command = new OracleCommand("UPDATE TABLE1 SET ID = :in_ID, NAME =:in_NAME, ADDR = :in_ADDR, connection);
command.Parameters.Add("in_ID", card.Id);
command.Parameters.Add("in_NAME", card.Name);
command.Parameters.Add("in_ADDR", card.Addr.GetOracleObject(connection));
command.ExecuteNonQuery();
...
public OracleObject GetOracleObject(OracleConnection connection)
{
var oracleObject = new OracleObject(OracleType.GetObjectType("T_ADDR", connection));
oracleObject["VALUE1"] = val1;
oracleObject["VALUE2"] = val2;
oracleObject["VALUE3"] = val3;
return oracleObject;
}