Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Доброго времени суток!

СУБД: Microsoft SQL Server 2014 - 12.0.2504.0 (X64)
Apr 17 2015 20:25:27
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )


Есть запрос:
select	
 		 substring(txt.text,(r.statement_start_offset+2)/2,(
         case when r.statement_end_offset = -1        
         then len(convert(nvarchar(MAX),txt.text))*2      
		 else r.statement_end_offset    
		 end 
		 - r.statement_start_offset) /2  )   as query_text

from sys.sysprocesses s
inner join sys.dm_exec_requests r on s.spid = r.session_id
cross APPLY sys.dm_exec_sql_text(r.sql_handle) txt

where s.spid > 50 and s.spid  <> @@spid  and s.status not in  ('background' )



подскажите, как преобразовать текст запроса в xml ссылку?
24 июл 15, 15:14    [17930655]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
andrew shalaev
подскажите, как преобразовать текст запроса в xml ссылку?

ели не сложно - что такое xml ссылка?
24 июл 15, 15:48    [17930884]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Maxx,

как выполнить

convert (xml, query_text)
24 июл 15, 15:59    [17930979]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
andrew shalaev,

или написать так вы написали (поставив на нужнгое место ).. или for xml вам в руки....
структура самого xml какая должна в тиоге то быть?
24 июл 15, 16:06    [17931020]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Maxx,

Структура:

<?query --
    select *
    from table
--?>

Если я делаю через convert(xml)

То получаю ошибку:
illegal qualified name character
24 июл 15, 16:12    [17931061]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Все...я понял чт о вы хотите )) Вам на сам хмл пофиг,вы хотите чтоб по результату можно было кликнуть ион открылся в новом окне студии..... Жесть
select	
 		CONVERT( xml, substring(txt.text,(r.statement_start_offset+2)/2,(
         case when r.statement_end_offset = -1        
         then len(convert(nvarchar(MAX),txt.text))*2      
		 else r.statement_end_offset    
		 end 
		 - r.statement_start_offset) /2  ) , 1 )  as query_text

from sys.sysprocesses s
inner join sys.dm_exec_requests r on s.spid = r.session_id
cross APPLY sys.dm_exec_sql_text(r.sql_handle) txt

where s.spid > 50 and s.spid  <> @@spid  and s.status not in  ('background' )
24 июл 15, 16:13    [17931074]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Maxx,

Та же ошибка:
XML parsing: line 45, character 21, illegal qualified name character
24 июл 15, 16:17    [17931104]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
andrew shalaev,
ну сначала сделайте реплейс спецсимоволов а патом приводите к типу....
яж не вижу,что у вас там возращаеться то ...может там встрачаются какие то конструкции в коде..которые хмл понимает как илегал....
24 июл 15, 16:21    [17931122]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
select	
 cast(null as xml).query('sql:column("a.query_text")')
from sys.sysprocesses s
inner join sys.dm_exec_requests r on s.spid = r.session_id
cross APPLY sys.dm_exec_sql_text(r.sql_handle) txt cross apply
(select substring(txt.text,(r.statement_start_offset+2)/2,(
         case when r.statement_end_offset = -1        
         then len(convert(nvarchar(MAX),txt.text))*2      
		 else r.statement_end_offset    
		 end 
		 - r.statement_start_offset) /2  )) a(query_text);
24 июл 15, 16:52    [17931312]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
invm,

Выводит одни Null
24 июл 15, 16:56    [17931345]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
andrew shalaev
Выводит одни Null
Исправьте на
... cast('' as xml).query ...
24 июл 15, 16:59    [17931366]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
invm,
Круто! Спасибо!
24 июл 15, 17:00    [17931382]     Ответить | Цитировать Сообщить модератору
 Re: Вывод строки текста запроса в формате xml  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
прикольно)
24 июл 15, 17:04    [17931404]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить