Есть задача:
прочитать данные из xml, а затем эти данные записать в новый xml.
Для этого использую CTE но при формировании нового xml получаю ошибку:
прочитать данные из xml, а затем эти данные записать в новый xml.
Для этого использую CTE но при формировании нового xml получаю ошибку:
DECLARE @xml XML SELECT @xml = CONVERT(XML, BulkColumn, 2) FROM OPENROWSET(BULK '\\UBS_NT\FILES\xml\1.xml', SINGLE_BLOB) AS x DECLARE @docHandle INT EXEC sp_xml_preparedocument @docHandle OUTPUT, @xml --SELECT @xml ;WITH cte AS ( SELECT inn AS inn_poluch, kpp AS kpp_poluch, NAME AS naimen_poluch, BankBIK, operatingAccountNumber AS acc_poluch, OrderDate AS date_trn, Amount, PaymentPurpose AS note_trn, [Year], [Month], AccountNumber AS 'ЛСИ' FROM OPENXML( @docHandle, 'importNotificationsOfOrderExecution/NotificationOfOrderExecutionType', 2 ) WITH ( INN NVARCHAR(20) './RecipientInfo/PaymentInformation/RecipientINN', KPP NVARCHAR(20) './RecipientInfo/PaymentInformation/RecipientKPP', NAME NVARCHAR(200) './RecipientInfo/PaymentInformation/PaymentRecipient', BankBIK NVARCHAR(20) './RecipientInfo/PaymentInformation/BankBIK', operatingAccountNumber NVARCHAR(20) './RecipientInfo/PaymentInformation/operatingAccountNumber', OrderDate DATETIME './OrderInfo/OrderDate', Amount FLOAT './OrderInfo/Amount', PaymentPurpose NVARCHAR(250) './OrderInfo/PaymentPurpose', [YEAR] INT './OrderInfo/Year', [Month] INT './OrderInfo/Month', AccountNumber NVARCHAR(20) './OrderInfo/AccountNumber' ) ) WITH XMLNAMESPACES ('http://www.ubs/system/base' as u) SELECT * FROM cte FOR XML PATH('u:UBS_TRANSFER')
Сообщение 156, уровень 15, состояние 1, строка 49 Incorrect syntax near the keyword 'WITH'. Сообщение 319, уровень 15, состояние 1, строка 49 Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon.