ORA-06502: PL/SQL: numeric or value error: character string buffer toosmall

Ошибка на Oracle
ORA-06502: PL/SQL: numeric or value error: character string buffer too smallВ моем случае это связано с тем, что функция или процедура Oracle имеет возвращаемый парампетр Varchar2
и я использую ODP.NET и следующий код устанавливающий параметр на стороне ADO.NET (т.е. на стороне .NET Framework приложения):
oCom.Parameters.Add("o_name", OracleDbType.Varchar2, ParameterDirection.Output);
Неправильно, сказала Oracle всем :), надо использовать следующее извращение, сказала Оракля:
oCom.Parameters.Add("o_name", OracleDbType.Varchar2, 300, null, ParameterDirection.Output);
Здесь 300 – это размерность. Любая, но не меньше, чем вы ожидаете.
null – ну типа как изначальное значени.
Уже стотый раз спотыкаюсь на этом, но постоянно забываю об этой несуразности.
С облегчением :) !

Комментарии

  1. [...] размер (size), у нас выше в примере это цифры 100 и 20. Детально об этом здесь. К этому относится и следующее: метод Parameters.Add(…) в [...]

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

A4tech. Мышь не найдена. Пожалуйста, подсоедините мышь.

Как экспортировать контакты из iPhone

The type or namespace name 'IISOle' could not be found (are you missing a using directive or an assembly reference?)