3

ストアドプロシージャに渡されたxmlパラメータから特定の値を読み取ろうとしています。これまでの私のコードの大まかな例を以下に示します。

SET @SearchFilter = 
'<?xml version="1.0"?>
 <KeywordSearch xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SelfEmployed xsi:nil="true" />
 </KeywordSearch>'

SET @SelfEmployed  = @SearchFilter.query('/KeywordSearch/SelfEmployed[1]').value('/', 'bit')

SELECT @SelfEmployed

私が抱えている問題は、要素にtrueまたはfalseの値が含まれている場合、要素に値が含まれていない場合、上記は正しく返されますが、nullを期待しているため、falseを返すことです。データ型をnull許容ビット値として正しく取得する方法はありますか?

4

1 に答える 1

5

XQuery を次のように変更すると、次のようになります。

SELECT @SearchFilter.value('(/KeywordSearch/SelfEmployed/text())[1]', 'varchar(100)')

その後、NULL値が返されます。ノードにテキスト値があるかどうかを確認しているため、 を文字列型として<SelfEmployed>解釈する必要があります (ここでは使用しています) 必要に応じて調整します。.value()varchar(100)

于 2012-05-24T10:45:09.087 に答える