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

что-то подобное как написать?

declare v_Cur_Result CURSOR FORWARD_ONLY STATIC FOR
SELECT error,description FROM master.dbo.sysmessages order by error
Open v_Cur_Result

fetch next from v_Cur_Result into @my_record

.......

Print (@my_record.Field1)

......
28 окт 04, 17:06    [1069389]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
В сиквеле нет типа данных запись, как в Oracle, поэтому ответ нет.
28 окт 04, 17:08    [1069405]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
Glory
Member

Откуда:
Сообщений: 104760
Как то так можно

create table #x(.....)

declare v_Cur_Result CURSOR FORWARD_ONLY STATIC FOR
SELECT error,description FROM master.dbo.sysmessages order by error
Open v_Cur_Result

truncate table #x
insert #x exec('fetch next from v_Cur_Result')

.......

select Field1 from #x

Только смысл ?
28 окт 04, 17:13    [1069423]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
mab
Guest
а можно как в Оракле сделать :

что-то вроде:

for v_cur in (select Field1,Field2 from my_table) loop
dbms_output.put_line(v_cur.FIeld1)
.....
end loop;
28 окт 04, 17:15    [1069436]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
mab
Guest
Glory
Как то так можно

create table #x(.....)

declare v_Cur_Result CURSOR FORWARD_ONLY STATIC FOR
SELECT error,description FROM master.dbo.sysmessages order by error
Open v_Cur_Result

truncate table #x
insert #x exec('fetch next from v_Cur_Result')

.......

select Field1 from #x

Только смысл ?


Так не пойдет, как мне обратится в этом случае к значению Field1 ?
28 окт 04, 17:17    [1069450]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
Glory
Member

Откуда:
Сообщений: 104760
И какие действия означенная конструкция производит в Oracle ?
В MSSQL каждый fetch next from v_Cur_Result (т.е. без указания приемника )вернет клиенту набор из одной записи
28 окт 04, 17:17    [1069453]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
а можно как в Оракле сделать :


Может вы лучше задачу опишите подробнее. Ибо сиквел и оракл сильно отличаются друг от друга.
28 окт 04, 17:19    [1069459]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
Glory
Member

Откуда:
Сообщений: 104760
Так не пойдет, как мне обратится в этом случае к значению Field1 ?
А что значит "обратится к значению" ?
28 окт 04, 17:21    [1069474]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
mab
Guest
Glory
И какие действия означенная конструкция производит в Oracle ?
В MSSQL каждый fetch next from v_Cur_Result (т.е. без указания приемника )вернет клиенту набор из одной записи


эта конструкцию я привел для примера она не важна, просто
я ей хотел показать что внутри цикла будут проведены какие-либо действия
с данными пришедшими из курсора....

мне не нужно возвращать данные из курсора клиенту, нужно провести
некие действия со значениями внутри цикла, просто заводить допустим
для этого 20 переменных не совсем удобно...
28 окт 04, 17:22    [1069478]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Или заводить 20 переменных или отказываться от курсора. Может без курсора все можно сделать?
28 окт 04, 17:26    [1069496]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
mab
Guest
Спасибо. В BOL я подобного не нашел поэтому сильно не надеялся :-)
Наверное без курсора не получится, внутри курсора будет сложный
расчет.
28 окт 04, 17:32    [1069527]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
Glory
Member

Откуда:
Сообщений: 104760
я ей хотел показать что внутри цикла будут проведены какие-либо действия
с данными пришедшими из курсора....

Объеясните что значит "проведены какие-либо действия
с данными" ? Если вы хотите передать их куда либо в процедуру - это одно.
Если вы хотите что-то сделать с текущей записью базоваой таблицы то у команды UPDATE есть синтаксис

UPDATE 
{
table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name
| rowset_function_limited
}
SET
{ column_name = { expression | DEFAULT | NULL }
| @variable = expression
| @variable = column = expression } [ ,...n ]

{ { [ FROM { < table_source > } [ ,...n ] ]

[ WHERE
< search_condition > ] }
|
[ WHERE CURRENT OF
{ { [ GLOBAL ] cursor_name } | cursor_variable_name }

] }
28 окт 04, 17:35    [1069538]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
mab
Guest
К сожалению, это тоже не подойдет...
28 окт 04, 17:55    [1069614]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных из курсора  [new]
Glory
Member

Откуда:
Сообщений: 104760
К сожалению, это тоже не подойдет...
К сожалению мы так и не знаем для чего не подойдет ...
28 окт 04, 17:57    [1069624]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить