powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический массив.
8 сообщений из 8, страница 1 из 1
Динамический массив.
    #32051051
Galina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как передать в процедуру в качестве параметра динамический массив? Или предложите альтернативное решение, пожалуйста. MS SQL Server 2000.
...
Рейтинг: 0 / 0
Динамический массив.
    #32051054
Sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать временную таблицу ...
...
Рейтинг: 0 / 0
Динамический массив.
    #32051058
Yossarian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать XML.
Массив закатывается в простейший XML
вида напр.
<xml>
<Employee name="Иванов">
...
</xml>
Это можно сделать вручную, если с клиента.
А потом разбирается через OPENXML
...
Рейтинг: 0 / 0
Динамический массив.
    #32051062
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет в TSQL не только динамических - вообще никаких массивов, если только таблицу не считать разновидностью массива. К названным обходным путям можно еще предложить параметр типа TEXT.
...
Рейтинг: 0 / 0
Динамический массив.
    #32051069
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял,
вопрос связан с необходимостью
обработки процедурой
заранее неизвестного числа
/и типов/ параметров.
Для этого мы применяеем следующее

1. Временная таблица /или несколько по типам/
для хранения и передачи параметров окружения
2. Передача в качестве параметра имени
таблицы заранее определенного формата
/все операции с ней - через exec /
...
Рейтинг: 0 / 0
Динамический массив.
    #32051106
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то нашел пример обработки списка параметров (кажется здесь, на этом сайте). К сожалению, не знаю, кто автор. Посмотрите:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
ЛИСТИНГ  1 : Передача списка в хранимую процедуру.

use pubs
go

create proc p_deliminclause @input varchar( 200 )
as
declare @inclause varchar( 200 ), @position int

set @inclause = ``
set @position =  1 

 --Выделить оператор IN из входного параметра, используя запятую
 
 --(Предполагается, что между значениями находятся пробелы)
 
while (@position >  0 )
begin
  set @inclause = @inclause 
    + ```` 
    + substring(@input,  1 , patindex(`%,%`, @input) -  1 ) 
    + ```, `
  set @input = stuff(@input,  1 , patindex(`%,%`, @input) +  1  , ``)
  set @position = patindex(`%,%`, @input)
end
 --Добавить последнее значение из входного параметра в оператор IN 
 
set @inclause = @inclause + ```` + @input + ````

 --возвратить строку оператора IN (только для демонстрационных целей)
 
select @inclause

 --использовать переменную в операторе IN для исполнения запроса
 
exec (`select * from authors where au_lname in (` + @inclause + `)`)
go

 --протестировать хранимую процедуру 
 
exec p_deliminclause `green, ringer, bennett`
...
Рейтинг: 0 / 0
Динамический массив.
    #32051118
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри здесь\r
/topic/12300
...
Рейтинг: 0 / 0
Динамический массив.
    #32051193
Galina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический массив.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]