2013-07-17 3 views
1

Как отобразить остальную часть xml для этого SQL-запроса, поскольку varchar2 ограничен только 2000?Содержимое SQL-блока Oracle SQL больше, чем максимальное значение varchar2

Колонка тзд представляет собой сгусток, который содержит сжатый XML
Каждая строка будет иметь разную длину Сообщ в диапазоне от 500 до 6000 байт, как минимум

select utl_raw.cast_to_varchar2(dbms_lob.substr(utl_compress.lz_uncompress(xml.msg),2000,1)) as XML_Msg from xml_table xml; 

Это может быть возможным решением Convert Blob to Varchar datatype, но я не знаю, что он будет делать с моей базой данных.

ответ

0

В Oracle MAX, который вы можете получить из BLOB-данных, составляет 4000 байт, ниже - это статут, который может выполнять задание. Я столкнулся с той же проблемой две недели назад, пожалуйста, обратитесь к моему сообщению за дополнительной информацией. Java Class for retrieving Large String from Oracle_db of LOB dataType

Select dbms_lob.substr(BLOB_FieldName, 4000, 1) 
    from Database name Where [Condition]; 
+0

Привет StackUnderFlow, столбец BLOB не имеют длину починки, поскольку существуют различные XML строки, которые мне нужно извлечь некоторые из них более чем 4000 байт других ниже 500. Спасибо за помощь – dimas

+0

@dimas с этот оператор SQL вы сможете получить первый 4000 байт строки. это может быть временное решение. Если вы хотите, чтобы строка целиком я верю, вам придется использовать «ResultSet», как описано в моем сообщении. – zee

+0

Я не делаю этого в java, но в SQL Developer;) – dimas

Смежные вопросы