0

custom_fields整形式のxmlを格納するという属性を含むテーブルがあります。

<Root>
   ...
   <TotalMontoSoles></TotalMontoSoles>
   ...
</Root>

ただし、この属性は xml データ型として保存されるのではなく、テキストとして保存されます。私がする必要があるのはTotalMontoSoles値を設定することであり、XML-DML の変更メソッドを使用してそれを達成しようとしていましたが、取得し続けます

エラー SQL: データ型 xml からテキストへの明示的な変換は許可されていません。

列を xml 型にキャストしようとするとエラーが発生します。

DECLARE @custom_fields xml
SET @custom_fields = (SELECT CAST(custom_fields as XML) FROM UPLOAD_HEADER_TEMPORAL
@custom_fields.modify('...')

私は何を間違っていますか?これを達成できる他の方法はありますか?

アップデート:

ここで私がやろうとしているのはプロシージャを作成することであり、コンパイル時にこのエラーが発生していることを指摘することが重要かもしれません。

4

1 に答える 1

1

テキスト列のデータ型を XML に変換 (キャスト) することはできません。ただし、varchar タイプのいずれかを使用できます (使用する必要があります)。Microsoft は、将来のある時点でテキスト (および画像) データ型を削除する予定です。

http://msdn.microsoft.com/en-us/library/ms187993%28v=sql.90%29.aspx

ntext、text、および image データ型は、Microsoft SQL Server の将来のバージョンで削除される予定です。新しい開発作業でこれらのデータ型を使用することは避け、現在それらを使用しているアプリケーションを変更することを計画してください。代わりに、nvarchar(max)、varchar(max)、および varbinary(max) を使用してください。

于 2013-03-05T16:59:48.977 に答える