Ich arbeite an einer gespeicherten Prozedur für eine Kalenderanwendung. Jedes Ereignis im Kalender kann mehrere Daten haben. Diese Information wird in zwei verschiedenen Tabellen gespeichert. Anstatt zwei gespeicherte Prozeduren zu schreiben und die zweite mehrmals aufzurufen, um die Daten zu speichern, gebe ich sie lieber einfach mit XML weiter. Das Problem ist, dass ich einige der Werte in Datumstypen und einen von ihnen in einen Ntext-Typ konvertieren möchte.Konvertieren von Werten, die in XML gespeichert sind, in Ntext- und Datumstypen in SQL Server 2005
Hier ist ein einfaches Beispiel, was ich habe, so weit:
Msg 9500, Stufe 16, Status 1, Zeile 4:
declare @samplexml as xml
set @samplexml = '<root><scheduleRow><dateBegin>4/5/2009</dateBegin><dateEnd>4/6/2009</dateEnd><timeBegin>1:00 pm</timeBegin><timeEnd>2:00 pm</timeEnd><location>Sheas House</location></scheduleRow><scheduleRow><dateBegin>5/5/2009</dateBegin><dateEnd>5/6/2009</dateEnd><timeBegin>2:00 pm</timeBegin><timeEnd>3:00 pm</timeEnd><location>Metro Buffet</location></scheduleRow></root>'
select x.scheduleRow.value('./dateBegin[1]','varchar(20)') as date_begin,
x.scheduleRow.value('./dateEnd[1]','varchar(20)') as date_end,
x.scheduleRow.value('./timeBegin[1]','varchar(20)') as time_begin,
x.scheduleRow.value('./timeEnd[1]','varchar(20)') as time_end,
x.scheduleRow.value('./location[1]','ntext') as location
from @samplexml.nodes('/root/scheduleRow') as x(scheduleRow)
Wenn Sie versuchen, dies zu laufen, diese Fehlermeldung angezeigt werden Der in der VALUE-Methode verwendete Datentyp 'ntext' ist ungültig.
Was mache ich hier falsch? Gibt es eine Möglichkeit zu tun, was ich will?