У меня есть объектная переменная SDO_GEOMETRY, которая извлекает данные типа sdo_geometry с карты. Я должен вставить geoloc.
я делаю что-то вроде этого
orcl.CommandText = "insert into table1 (id,geoloc) values(:id,:geoloc)";
orcl.SetBindByName(true);
orcl.SetArrayCount(ArrayCount);
orcl.AddParameter(":ID",OracleDbType.Int32,ParameterDirection.Input,Idlist.ToArray());
orcl.AddParameter(":GEOLOC",OracleDbType.Object,ParameterDirection.Input,ObjectList.ToArray());
orcl.ExecuteNonQuery();
Метод добавления параметра
public void AddParameter(string parameterName, OracleDbType _type,ParameterDirection dValue, Array _value)
{
(OracleCommand)cmd.Parameters.Add(new OracleParameter(parameterName, _type, _value, dValue));
}
Я принимаю эту ошибку:
Неверная привязка параметра. Имя параметра: :GEOLOC
Как мне поступить?
SDO_GEOMETRY
в SQL и просто привязать значения, которые вы хотите передать в этот объект:INSERT INTO table1 ( id, geoloc ) VALUES( :id, SDO_GEOMETRY( 2001, 8307, SDO_POINT_TYPE(:lat,:long,NULL), NULL, NULL) )
- person MT0   schedule 23.03.2016ObjectList
? Если он не содержит UDT, которые наследуются от IOracleCustomType , как показано здесь Oracle их не поймет. Вам нужно будет создать свой собственный UDT, подобный тому, который показан здесь, или преобразовать свою геометрию в текст, передать его в Oracle как параметр CLOB и используйте [FROM_WKTGEOMETRY](SDO_UTIL.FROM_WKTGEOMETRY) в своем запросе для анализа текста в геометрию - person Panagiotis Kanavos   schedule 18.10.2018