Я знаю, что этот тип вопросов был задан раньше, но ни один из них не заполняет мои требования. Вот мой простой код для вставки данных в таблицу из xml, но давая ошибку непрерывно ..i изменили дату на многие форматы, но ошибка не пошла.преобразование не удалось при преобразовании даты и/или времени из символьной строки в xml
здесь хранимая процедура
ALTER PROCEDURE [dbo].[SP_PCMarkAttendance]
@XMLData xml,
@Result Bit output
AS
Begin
Create table #tempMarkAttendance(
StSubAssID numeric(18,0) ,
Dat Date,
IsP Bit ,
IsL Bit
);
insert into #tempMarkAttendance(StSubAssID,Dat,IsP,IsL)
Select
attendance.query('StSubAssID').value('.', 'numeric(18,0)') as StSubAssID,
attendance.query('Dat').value('.', 'Date') as Dat,
attendance.query('IsP').value('.', 'Bit') as IsP,
attendance.query('IsL').value('.', 'Bit') as IsL
FROM
@XMLData.nodes('/StudentList/Student')AS xmlData(attendance)
select * from #tempMarkAttendance
set @Result = 1
End
и здесь его выполнения.
DECLARE @return_value int,
@Result bit
EXEC @return_value = [dbo].[SP_PCMarkAttendance]
@XMLData = N'<?xml version="1.0" ?>
<StudentList>
<Student>
<StSubAssId>2</StSubAssId>
<Dat>
2014-01-01</Dat>
<IsP>False</IsP>
<IsL>False</IsL>
</Student>
</StudentList>',
@Result = @Result OUTPUT
SELECT @Result as N'@Result'
SELECT 'Return Value' = @return_value
GO
и ошибка:
Msg 241, Level 16, State 1, Procedure SP_PCMarkAttendance, Line 13
Conversion failed when converting date and/or time from character string.
другая ошибка, когда я изменить тип StSubAssId в числовом (18,0)
Msg 8114, Level 16, State 5, Procedure SP_PCMarkAttendance, Line 12
Error converting data type nvarchar to numeric.
Спасибо дружище .. проблема решена –
у меня есть еще одна проблема, когда я изменил тип из StSubAssId в числовой (18,0) он дает мне ошибку –
@AdnanAli Я думаю, что причина того, что «другой ошибки» является факт, что вы используете 'StSubAssId' в исходном xml, но запрашиваете его как' StSubAssID' (обратите внимание на «D» в «ID»). Таким образом, ваш запрос возвращает пустую строку (но не null) и исключение генерируется при преобразовании пустой строки в числовой. –