Sql server 如何从SQLServer2008XML字段中选择大于8k个字符的字符串
我正在构建一个小型php应用程序,它只需从数据库中提取一个XML字符串,并在文本区域内的页面上显示整个字符串。听起来很简单,对吧?当我这样做时,我达到了8k字符的限制,我的XML被截断 我只想从XML字段中获取原始文本 SQL Server 2008不允许强制转换或转换为文本。当我转换到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 [
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))为文本)