sybase - процедура возвращает предыдущий набор результатов - PullRequest
0 голосов
/ 03 июля 2018

У меня процедура с 2 выборами, выглядит примерно так ...

PROCEDURE getRec
  @pId INTEGER
AS
BEGIN
  SELECT 'anything'

  SELECT id, name
  FROM my_table
  WHERE id = @pId
END

Когда мой Perl-скрипт вызывает эту хранимую процедуру, если my_table имеет соответствующую запись, она отображается. Однако если переданный идентификатор не имеет совпадений, хранимая процедура возвращает 'anything'.

Если во втором выборе нет строк, я просто хочу, чтобы процедура возвращала пустой набор результатов. Как мне этого добиться?

1 Ответ

0 голосов
/ 07 июля 2018

Каждый SELECT генерирует набор результатов (за исключением SELECT @var = ...)

Итак, сначала будет получен набор результатов «что-нибудь»

После этого вы получите пустой набор результатов.

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

Функции для получения следующего набора результатов будут в значительной степени зависеть от используемой вами библиотеки Perl.

...