Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何从SQLServer2008XML字段中选择大于8k个字符的字符串_Sql Server_Xml_Sql Server 2005_Adodb - Fatal编程技术网

Sql server 如何从SQLServer2008XML字段中选择大于8k个字符的字符串

Sql server 如何从SQLServer2008XML字段中选择大于8k个字符的字符串,sql-server,xml,sql-server-2005,adodb,Sql Server,Xml,Sql Server 2005,Adodb,我正在构建一个小型php应用程序,它只需从数据库中提取一个XML字符串,并在文本区域内的页面上显示整个字符串。听起来很简单,对吧?当我这样做时,我达到了8k字符的限制,我的XML被截断 我只想从XML字段中获取原始文本 SQL Server 2008不允许强制转换或转换为文本。当我转换到nvarchar(max)时,我得到的比没有转换的多一些,但它仍然被截断。使用GUI,我可以选择字段并打开它以显示所有文本……您如何通过编程实现这一点 我正在使用ADODBPHP $sql = "SELECT [

我正在构建一个小型php应用程序,它只需从数据库中提取一个XML字符串,并在文本区域内的页面上显示整个字符串。听起来很简单,对吧?当我这样做时,我达到了8k字符的限制,我的XML被截断

我只想从XML字段中获取原始文本

SQL Server 2008不允许强制转换或转换为文本。当我转换到
nvarchar(max)
时,我得到的比没有转换的多一些,但它仍然被截断。使用GUI,我可以选择字段并打开它以显示所有文本……您如何通过编程实现这一点

我正在使用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'/>";
$sql=“选择[IndicatorID]
,[LitpMultiYearXml]
,[LitpComparisonXml]
来自[MD_SPP_0910]。[dbo]。[SppResult]
其中indicator=“.$\u GET['indicator\u id'”;
$xml=$db->GetRow($sql);
//echo$sql;
$multi_year=$xml[1];
$multi_year=htmlspecialchars(str_replace(“>”、“>\n”、$multi_year));
echo“$multi_year”;

您可以尝试对varchar(max)进行强制转换 首先,然后是文本。 强制转换(强制转换(XMLCol为varchar(max))为 文本)-米凯尔·埃里克森

这是正确的

我以为内部演员会限制它,但我错了


您可以尝试对varchar(max)进行强制转换 首先,然后是文本。 强制转换(强制转换(XMLCol为varchar(max))为 文本)-米凯尔·埃里克森

这是正确的


我以为内部演员会限制它,但我错了

LitpMultiYearXml
列是否仅包含所需的值,或者其中是否包含XML标记?如果是后者,您可以使用这真的是XML类型的列吗?或者只是一个包含一些XML文本的字符列?@OMG Ponies-我想要所有XML标记以及值…您可以先尝试转换为varchar(max),然后转换为文本
cast(cast(XMLCol作为varchar(max))作为文本)
LitpMultiYearXml
列只包含您想要的值,还是其中有XML标记?如果是后者,您可以使用这真的是XML类型的列吗?或者只是一个包含一些XML文本的字符列?@OMG Ponies-我想要所有XML标记以及值…您可以先尝试转换为varchar(max),然后转换为文本<代码>强制转换(强制转换(XMLCol为varchar(max))为文本)