Как вернуть пустую строку в наборе результатов (используя sys_refcursor) в ORACLE DB

Столкнувшись с проблемой:

ORA-32108: максимальный размер столбца или параметра не указан

Я немного исследовал и нашел эти два вопроса: Почему обрабатывает ли Oracle 9i пустую строку как NULL? и Oracle не различать нули и пустые строки?.


Эти вопросы объясняют мою ошибку. Но это привело меня к следующему вопросу - как я могу вернуть пустую строку в качестве значения поля в ResultSet в Oracle?


На данный момент у меня есть:

  • создать заявление
  • Зарегистрируйте выходной параметр как oracle::occi::OCCICURSOR
  • execute заявление
  • я вызываю GetCursor, чтобы использовать возвращенный набор результатов

execute не работает из-за ошибки, описанной выше.

Итак, как я могу вернуть такое поле в наборе результатов, которое имеет значение пустой строки ('')?

Другими словами, я не знаю, как применить действие, указанное ЗДЕСЬ - это это что-то серверное? Или я должен что-то добавить в свой код? Или в хранимой процедуре, которая возвращает этот набор результатов?


Я использую OCCI (Oracle C ++ Call Interface). Мой текущий обходной путь - вернуть строку, содержащую один пробел (' '), но мне это не нравится.


person Kiril Kirov    schedule 17.12.2012    source источник
comment
Это означает, что вы хотите вернуть полностью пустой столбец? Вы могли видеть, сработает ли приведение, cast( null as varchar2(1)).   -  person Ben    schedule 17.12.2012
comment
Ах, этот гипс работает как шарм! Спасибо! Вы можете добавить это в качестве ответа?   -  person Kiril Kirov    schedule 17.12.2012
comment
Я рад! Я добавил это как ответ.   -  person Ben    schedule 17.12.2012


Ответы (1)