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

Таблица - аргумент хранимой процедуры

Добавлено: 22 июл 2005, 09:54
mfasakhov
Можно ли передать хранимой процедуре (если да, то как) имя таблицы для того, чтобы ХП делала выборку по заданной таблице?

CREATE PROCEDURE GET_MAX_CODE(??? ?????)
RETURNS (MAX_CODE INTEGER)
AS
BEGIN
SELECT MAX(CODE) FROM ??? INTO MAX_CODE;
SUSPEND;
END

Добавлено: 22 июл 2005, 10:25
kdv
да нафига ж вы такой гадостью то занимаетесь.... почему так ломает запрос с клиента выполнить, что надо такую процедуру писать? Это что, попытка сэкономить, или что?

Re: Таблица - аргумент хранимой процедуры

Добавлено: 22 июл 2005, 11:12
McArty
mfasakhov писал(а):Можно ли передать хранимой процедуре (если да, то как) имя таблицы для того, чтобы ХП делала выборку по заданной таблице?

CREATE PROCEDURE GET_MAX_CODE(??? ?????)
RETURNS (MAX_CODE INTEGER)
AS
BEGIN
SELECT MAX(CODE) FROM ??? INTO MAX_CODE;
SUSPEND;
END
см.
Execute Statement

Добавлено: 22 июл 2005, 11:33
mfasakhov
Указанная процедура всего лишь пример. Мне впринципе интересно.

Добавлено: 22 июл 2005, 11:57
mfasakhov
Так и не понял зя или низя :(

Добавлено: 22 июл 2005, 12:55
kdv
вообще - нельзя. но можно в 1.5 через динамическое выполнение запросов (execute statement). Но. exec statement тормозит, потенциально опасен (см. release notes), и развращает.

Уже сам исходный вопрос, про передачу имени таблицы в переменной, настораживает - в консерватории что-то не так.

Добавлено: 22 июл 2005, 14:28
mfasakhov
Понял, спасибо.