1

以前の SO 投稿: The argument 1 of the XML data type method "value" must be a stringliteral解決策を見つけられませんでしたが、誰かがこの質問に答えることができれば、以前の問題を解決できます。

質問: 特定のノードの名前を取得できるように、特定のノードのフル パスを取得するにはどうすればよいですか?

declare @x xml; set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.value('local-name((/ROOT/a)[1])', 'varchar(256)')

上記は「a」を返します。「/ROOT/a」を返すにはどうすればよいですか?

4

1 に答える 1

0

SQLエンジンがXQuery言語全体をサポートしていないという理由だけで、現時点では(SQL Server 2008の時点で)この問題の解決策はありません。仕様に従って、祖先を取得するために使用できる関数があり、FLWORを使用してパスを構築できますが、祖先関数は実装されていません。悲しいことに。

しかし、私が最初にここに来た問題については(私の元のSOの投稿を参照)-それは許容できる解決策を見つけました

于 2012-09-19T23:25:56.383 に答える