Тэги

Silverlight (36) WPF (10) IIS (7) Visual Studio (7) SharePoint (6) .Net Framework (5) ODP.NET (5) ASP.NET (4) C# (4) common (4) Network Settings (3) JavaScript (2) MS Office (2) Resharper (2) WCF (2) WEB (2) XPath (2) XSLT (2) ADO.NET (1) APEX (1) CMD (1) CSS (1) EF (1) HTML (1) Hardware bugs (1) Java (1) MS SQL (1) Oracle (1) PDF (1) Version Control (1) XAML (1)

четверг, 29 октября 2009 г.

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 комментарий:

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

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