Как выбрать строку, превышающую 8 тыс. Символов, из поля XML SQL Server 2008 - PullRequest
1 голос
/ 06 апреля 2011

Я создаю небольшое приложение php, которое просто извлекает строку XML из базы данных и отображает всю строку на странице внутри текстовой области. Звучит просто, правда? Когда я делаю это, я достигаю предела в 8 000 символов, и мой XML усекается.

Все, что я хочу сделать, это получить необработанный текст из поля XML.

SQL Server 2008 не позволяет преобразовывать или преобразовывать в текст. Когда я конвертирую в nvarchar(max), я получаю немного больше, чем без конвертации, но она все еще усекается. Используя графический интерфейс, я могу выбрать поле и открыть его, чтобы показать весь текст .... как вы делаете это программно?

Я использую ADODBPHP

$sql = "SELECT [IndicatorID]
              ,[LitpMultiYearXml]
              ,[LitpComparisonXml]
          FROM [MD_SPP_0910].[dbo].[SppResult] 
         where IndicatorID = ".$_GET['indicator_id'];

$xml = $db->GetRow($sql);
//echo $sql;
$multi_year = $xml[1];
$multi_year = htmlspecialchars(str_replace(">",">\n",$multi_year));

echo "<textarea name='xml' cols='80' rows='20'>$multi_year</textarea><input type='hidden' name='indicator_id' value='$indicator_id'/>";

1 Ответ

1 голос
/ 06 апреля 2011

Вы можете сначала выполнить приведение к varchar (max), а затем к тексту.приведение (приведение (XMLCol как varchar (max)) как текст) - Микаэль Эрикссон

Это было правильно!

Я думал, что внутреннее приведение будет ограничивать это, но я был неправ!

...