Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORA-01084: неверн.аргумент в вызове OCI / 2 сообщений из 2, страница 1 из 1
21.03.2008, 20:20
    #35207088
Гость № 555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01084: неверн.аргумент в вызове OCI
Добрый день.
Помогите с ошибкой "ORA-01084: неверн.аргумент в вызове OCI".
Обращаюсь сюда, а не в форум оракла, т.к. эта ошибка в одном месте кода возникает - в другом нет.
Возникает она при попытке вставки данных в таблицу простой командой INSERT, когда я в CLOB-поле передаю пустую строку.
В одну таблицу вставка происходит без проблем, в другую - возникает ошибка. Если передаю не пустую строку - то все в порядке в обоих случаях.

Объявление полей в таблицах:

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE PERSONS 
(
...
    PERSON_COMM   CLOB,
...
)

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE OBJECTS 
(
...
    OBJECT_COMM   CLOB,
...
)

Вот сами insert-команды:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
insert into PERSONS
(
    ...
    PERSON_COMM, 
    ...
)
values(
    ...
    :PERSON_COMM,
    ...
)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
insert into OBJECTS
(
    ...
    OBJECT_COMM, 
    ...
)
values(
    ...
    :OBJECT_COMM,
    ...
)

Вот объявленные команды в коде:

Код: plaintext
1.
2.
3.
4.
        cmdInsertPerson = new OracleCommand(constants.InsertPersonSql, OraCon);
        ...
        cmdInsertPerson.Parameters.Add("PERSON_COMM", OracleType.Clob,  250 , "PERSON_COMM");
        ...

Код: plaintext
1.
2.
3.
4.
        cmdInsertObject = new OracleCommand(constants.InsertObjectSql, OraCon);
        ...
        cmdInsertObject.Parameters.Add("OBJECT_COMM", OracleType.Clob,  250 , "OBJECT_COMM");
        ...

Вот вызов этой команды, который работает:

Код: plaintext
1.
2.
3.
4.
5.
void AddObj(HashTable ht, ...)
{
    ...
    cmdInsertObject.Parameters["OBJECT_COMM"].Value = ht["comm"].ToString();
    ...
}

Вот вызов этой команды который не работатет:

Код: plaintext
1.
2.
3.
4.
5.
void AddPers(string comm, ...)
{
    ...
    cmdInsertPerson.Parameters["PERSON_COMM"].Value = comm;
    ...
}

Единственное отличие - это то, как передается параметр: в первом случае - через HashTable, во втором - просто string. Неужели проблема из-за этого?

Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
31.03.2008, 12:55
    #35224186
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01084: неверн.аргумент в вызове OCI
Ора ошибка на сервере, значит нужно посмотреть профайлером что от клиента передается на сервер при такой команде и сделать выводы
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORA-01084: неверн.аргумент в вызове OCI / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]