sql >> Databáze >  >> RDS >> Sqlserver

XML jako parametr v uložené proceduře (sql server)

Váš první dotaz, o kterém tvrdíte, že funguje, ve skutečnosti nefunguje s vámi zadaným XML. Mělo by to být takto.

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

Druhá verze by měla být

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

Protože používáte SQL Server 2008 nebo novější, můžete místo něj použít datový typ XML.

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. Exportujte tabulku z databáze Postgres (na serveru) do souboru csv (na místním místě) v jazyce Java

  2. Oracle dotaz pro převod více sloupců do jednoho sloupce

  3. Reshape Table v MySQL nebo R

  4. Předání hodnoty načtené z databáze na jinou stránku pomocí php a mysql