Я хочу установить переменную окружения long
на основе размера XML-данных, которые я пытаюсь получить. Идея что-то вроде этого:Oracle SQLPlus настройка переменной окружения на основе переменной
var XML_DATA_SIZE number;
SELECT TRIM(LENGTH(xmltype.getClobVal(xml_data)))
INTO :XML_data_size
FROM xml_tab
WHERE key = '1234';
print XML_DATA_SIZE
set long XML_DATA_SIZE
set pagesize 0
set line 2000
set termout off
spool XMLDATA.xml
select xml_data from xml_tab where key = '1234';
spool off
Это дает ошибку: SP2-0268: long option not a valid number
, а файл XML содержит только 80 символов.
Почему бы не просто установить его максимально и не беспокоиться об этом? –
@ Adam Hawkes: Из того, что я прочитал, если я поставил «длинный» максимально возможным, клиенту понадобится столько свободной памяти, даже если фактические данные, которые я возвращаю, намного меньше. Я не ожидаю, что это возможно, но я очень неохотно догадываюсь о фактическом максимуме. В тестовых данных образцы XML-документов варьируются от 20 КБ до 3000 КБ, и это только очень простые тестовые данные. – FrustratedWithFormsDesigner
Ну, это будет проблемой. Я уверен, что ограничение составляет 2 миллиона байт. Так что сообщение 3000K будет отключено. И выделение 2 МБ ОЗУ на клиента для меня не похоже. –