У меня смешная длинная строка xml, она имеет> 800000 символов. «Клиент» также является «сервером». ОС Windows 2k8 x64. База данных имеет много памяти, как и клиент.
Проблема в том, что как только я нажимаю на магическое число символов - ровно 43679 символов xml - строка возвращает то, что, по-видимому, равно ''. я называю их «символами xml», потому что любые пробелы явно удаляются сервером sql при вычислении длины - что я делаю с этим sql: len (convert (varchar (max), xsl)). Почему число 43679 также сбивает меня с толку ...
У кого-нибудь есть эта проблема? Я на самом деле подключен к тому же серверу с Windows 2k3 и другим сервером Windows 2k8 и никаких проблем на любой другой машине, кроме этой (сам сервер).
Я также нашел результаты запроса -> sql server -> results в grid и установил предел для xml равным «unlimited», но, похоже, он все еще не «работает» ... (те, которые работают, имеют это установите 2mb к сведению)
Спасибо за любые комментарии - я попробую что-нибудь ... это ничего не мешает работать - я уверен, что это всего лишь один клиент, но это сводит меня с ума! :)
ОБНОВЛЕНИЕ: К вашему сведению - проблема не в конвертации - я на самом деле не хочу ее конвертировать. единственная причина, по которой я использую конвертирование в этом примере, заключается в использовании len (len не работает с типами данных xml), поэтому я могу определить, насколько «длинным» является xml.
Проблема в том ...
INSERT INTO someTableForXml(theXml)
VALUES ('<this><is><some><really>long xml</really></some></is></this>')
Теперь скопируйте и вставьте это, пока у вас не будет около 100 000 строк XML и вставьте его ... Когда я выбираю строки обратно, используя:
SELECT * FROM someTableForXml
Я возвращаюсь на 1 строку, и в «сетке» я получаю симпатичную небольшую гиперссылку для xml, которая, когда я нажимаю на нее, показывает мне «full xml» на новой вкладке. Однако для меня ... Как только я передаю это странное магическое число, оно перестает это делать и просто выглядит пустым.