1

从 SQL Server 数据库查询 xml 数据时,它返回一个截断的 xml。

$db = DB::get();

$db->exec('SET ANSI_NULLS ON');
$db->exec('SET ANSI_PADDING ON');
$db->exec('SET ANSI_WARNINGS ON');
$db->exec('SET ARITHABORT ON');
$db->exec('SET CONCAT_NULL_YIELDS_NULL ON');
$db->exec('SET NUMERIC_ROUNDABORT OFF');
$db->exec('SET QUOTED_IDENTIFIER ON');

$query = "select CAST(db.function(199) AS nvarchar(max))";
$result = $db->query($query);
$xml = $result->fetchColumn();

如果 $xml 的长度太大,则会被截断。有没有办法获得完整的xml,无论它的大小是多少?

4

1 回答 1

1

最后我before在查询中添加了这些行:

$query = "select LEN(CAST(dbo.f_XML_Facture($IDFacture) AS nvarchar(max)))";
if ($result = $db->query($query)) {
    if (($length = $result->fetchColumn()) !== false) {
        $txt = "SET TEXTSIZE " . ($length*2);
        $db->exec($txt);
    }
}

SET TEXTSIZE (number)允许我们定义我们想要检索的 xml 的长度。

于 2013-09-18T13:39:37.963 回答