1

SQL サーバー データベースから 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 に答える