Работа с oracle

Добрый день.Не могли бы вы ответить на такие вопросы? Есть процедура в которой формируется строка причем размер в конце этой строки >255 и эту строку нужно вывести в выходном параметре. Какой тип при этом нужно указать выходному параметру в oracle и delphi?
12 ответов

>255
Берите CLOB, не ошибетесь


А в delphi какой параметр ft взять чтобы нормально извлечь для bde компонентов?


для BDE? ftPoisonWall


Для ТStoredProc на вкладке bde находящегося. ftPoisonWall такого парметра нет, ftstring не подходит.


> 255 это сколько? Если все-таки <= 4000 - VARCHAR2 на сервере. На клиенте попробуй ftMemo.А BDE пора бы и прикопать...


для BDE? ftPoisonWall
Универсальный тип данных. Жаль, не все СУБД его поддерживают


ftMemo тоже не подходит. Да процедура в PLSQLDEveloper нормально отрабатывает и для VARCHAR2 и для clob проблема в том что delphi в случае с VARCHAR2 если ставим ftstring StoredProc3.Params.CreateParam(ftstring,'Pvuch',ptoutput) то число символов должно на выходе быть меньше 255 иначе выдает ошибку, а для clob вот этот параметр чего-то не удается подобрать выдает ошибку и для ftMemo и для ftstring.


С clob'ами BDE, ЕМНИП, не работала и уже не будет - потому что мертвенькая. Пробуй VARCHAR2 и тип возвращаемого параметра ftMemo, если хватает 4000 символов (при однобайтной кодировке на сервере). Если 4000 не хватает - шинкуй на куски, дергай в цикле и склеивай.Какой-то уголок некрофила получился...


Разве ftMemo не ANSI--http://www.podgoretsky.com


Пробуй VARCHAR2 и тип возвращаемого параметра ftMemo, если хватает 4000 символов (при однобайтной кодировке на сервере)-тоже выдает ошибку.


Ты параметры автоматом создаешь? Если да - то переходи на ручное управление. Совсем не получается - переделай процедуру в функцию и рисуй 'SELECT func(...) FROM dual'.


А что значит ручное управление?Я создаю параметры обычно в программе StoredProc3.Params.CreateParam(ftstring,'Pvuch',ptoutput).А с функцией хорошая мысль. Спасибо.