Страница 1 из 1

Разбор строки в хранимой процедуре

Добавлено: 28 апр 2005, 18:00
starik
Добрый день! Созданы таблицы
Create Flows (
FlowId integer not null primary key,
FlowName char(50));
Create Groups (
GroupId integer not null primary key,
GroupName char(10));

далее внесено:
Insert into Flows(1,FlowName) values ('М-104,М-204,СП-104');
Insert into Flows(1,FlowName) values ('ВЛ-104,ВЛ-204,СП-104');

Как с помощью хранимой процедуры разобрать строку и получить
названия групп М-104, М-204, СП-104,... в столбце GroupName таблицы Groups??
Спасибо.

Добавлено: 28 апр 2005, 18:16
Merlin
О поле... Кто тебя усеял... Про отношения 1:n что-нить слышать доводилось?

Добавлено: 28 апр 2005, 18:23
starik
приходилось. Переформулирую вопрос. Есть строка '1234,5678,2534'.
Известно, что запятая - разделитель. Можно ли выделить '1234', '5678', '2534'?? На Дельфи это несложно. Можно ли в хранимой процедуре?

Добавлено: 28 апр 2005, 18:35
Merlin
Можно.

Добавлено: 28 апр 2005, 18:45
starik
Может быть, Вы знаете как (хотя бы в общем) это сделать?

Добавлено: 28 апр 2005, 19:05
Merlin
Пользуясь UDF и SDF. Какими - зависит от версии сервера и имеющихся в его дистрибутиве, а также какие найдутся в инете или написаны самим. Но я Вас очень прошу - сделайте лучше по-людски, а то мне ведь перед Богом отвечать за такие советы.

Добавлено: 28 апр 2005, 19:10
starik
Спасибо. Как я понимаю, в самом языке Ibase средств-таки нет и все равно придется писать (или искать) на Delphi (или C)

Добавлено: 28 апр 2005, 19:36
Merlin
За InterBase точно не скажу, но по-моему там строковые функции остались в виде UDF, хоть и стандартных. В FB часть из них, например, substring, вошли в состав встроенных функций.

Добавлено: 29 апр 2005, 08:07
Ivan_Pisarevsky
все равно придется писать (или искать)
Если нормально спроектировать БД, то не придется. :wink: