Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

XML sebagai parameter dalam prosedur tersimpan (server sql)

Kueri pertama Anda yang Anda klaim berfungsi sebenarnya tidak berfungsi dengan XML yang Anda berikan. Seharusnya seperti ini.

declare @handle int
declare @XML xml = '<ROOT><ids><id>2013-01-01</id></ids><ids><id>2013-01-02</id></ids></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/ids', 2) with (id Date)
exec sp_xml_removedocument @handle

Versi kedua seharusnya

declare @handle int
declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/id', 2) with (id Date '.')
exec sp_xml_removedocument @handle

Karena Anda menggunakan SQL Server 2008 atau yang lebih baru, Anda dapat menggunakan tipe data XML sebagai gantinya.

declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'

select T.N.value('text()[1]', 'date') as id
from @XML.nodes('ROOT/id') as T(N)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah mungkin untuk menggunakan tipe tabel yang ditentukan pengguna di dalam tipe tabel yang ditentukan pengguna lain di sql

  2. Solusi Untuk Cara Membaca File Log Transaksi SQL Server Tanpa Gagal

  3. SQL Express untuk produksi?

  4. Menjalankan Paket SSIS menggunakan dtexec

  5. Apakah mungkin untuk memilih data server sql menggunakan posisi ordinal kolom