Hi guys,
here is thing I need assistance,
sp_xml_preparedocument procedure well documented and in the description MS says that I can pass second parameter as type TEXT. But how to do that? I cannot create local variables as TEXT. I need text type data because XML files usually larger than 8000 chars. Anotherwords I need replace @xml in statement
exec sp_xml_preparedocument @idoc OUTPUT, @xml
as something in type TEXT
in case if I will use
exec('sp_xml_preparedocument @idoc OUTPUT, '''+@xml_part1+'''+'''+@xml_part2+'''')
I must declare 2,3,4 ... etc varchar(8000) variables, unacceptable for me, i need to have ability to support 1-2M xml files in size.
please, help anybody who can!!!
sp_xml_preparedocument
-
- Уже с Приветом
- Posts: 833
- Joined: 07 Jun 2001 09:01
- Location: Venice of US,FL,US
-
- Уже с Приветом
- Posts: 5347
- Joined: 03 Feb 1999 10:01
- Location: NJ, USA
А откуда этот 1-2M XML файл берется?
1. Внешний файл который надо подсунуть sp_xml_preparedocument
2. Ты его сам генеришь в какой-нибудь stored proc
Если 1., то не вижу проблемы. Создаешь stored proc которая принимает параметр TEXT и подсовываешь его sp_xml_preparedocument
Если 2., то можно попробовать создать temp table c полем TEXT, а потом сделать SELECT
1. Внешний файл который надо подсунуть sp_xml_preparedocument
2. Ты его сам генеришь в какой-нибудь stored proc
Если 1., то не вижу проблемы. Создаешь stored proc которая принимает параметр TEXT и подсовываешь его sp_xml_preparedocument
Если 2., то можно попробовать создать temp table c полем TEXT, а потом сделать SELECT
-
- Уже с Приветом
- Posts: 833
- Joined: 07 Jun 2001 09:01
- Location: Venice of US,FL,US
-
- Уже с Приветом
- Posts: 5347
- Joined: 03 Feb 1999 10:01
- Location: NJ, USA
Code: Select all
CREATE Procedure dbo.proc_eq_UpdateOrdersBulk
@pOrdersXML NTEXT
AS
SET NOCOUNT ON
DECLARE @hDoc INT
EXEC sp_xml_preparedocument @hDoc OUTPUT, @pOrdersXML
... skip
-
- Уже с Приветом
- Posts: 833
- Joined: 07 Jun 2001 09:01
- Location: Venice of US,FL,US
КВА, спасибо, дело в том, что я никогда не имел дела с большими массивами данных типа текст, имидж или нтекст в процедурах, до сих пор удавалось избегать этого, т.е. я не имею такой "картинки" в соображении которая по умолчанию обяснит как загрузить и передать парамер типа нтекст или текст. Не мог бы ты поконкретнее описать в кодах процесс загрузки файла и передачи его в процедуру proc_eq_UpdateOrdersBulk, что-то до меня не доходит.
-
- Уже с Приветом
- Posts: 5347
- Joined: 03 Feb 1999 10:01
- Location: NJ, USA
-
- Уже с Приветом
- Posts: 833
- Joined: 07 Jun 2001 09:01
- Location: Venice of US,FL,US
KVA wrote:Что такое stored procedure знаешь? Если знаешь, то как параметры ее передать знаешь? Так вот TEXT или NTEXT такой же параметр как VARCHAR например.
А то как их ты передаешь, зависит от того на чем ты пишешь.
на T-SQL и пишу, как НТЕКСТ из файла загрузить?
короче у меня ощущение что надо самому писать extended procedure или обьект которые будут вызывать процедуру с параметром типа текст, в самом MSSQL этого не сделать
-
- Уже с Приветом
- Posts: 5347
- Joined: 03 Feb 1999 10:01
- Location: NJ, USA
Halbhalb wrote:короче у меня ощущение что надо самому писать extended procedure или обьект которые будут вызывать процедуру с параметром типа текст, в самом MSSQL этого не сделать
А собственно говоря почему бы и нет. Вот это не поможет?
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=01be01c34c87%2451ad3e70%24a301280a%40phx.gbl&rnum=52&prev=/groups%3Fq%3Dload%2Bfile%2BSQL%2Bserver%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26start%3D50%26sa%3DN