Я пытаюсь создать хранимую процедуру, которая возвращает набор данных, используя курсор, который содержит несколько подзапросов.Запрос работает, когда выполняется как отдельный скрипт, но при переводе его в формат хранимой процедуры с использованием курсора он не работает.В частности, создается впечатление, что внешний запрос выполняется только в одной строке подзапроса.
SELECT
contract.province,
contract.contract_date
WHERE contract.CON_CONTRACT_DATE >='2015-01-01'
AND contract.CON_CONTRACT_DATE < '2018-11-01'
Возвращает:
Province | Contract Date
---------------------------
Ontario | June 11th, 2017
Quebec | July 12th, 2017
Затем я вкладываю этот запрос в следующее:
DECLARE C2 CURSOR WITH RETURN TO CALLER FOR
SELECT
province
FROM (
SELECT
contract.province,
contract.contract_date
WHERE contract.CON_CONTRACT_DATE >='2015-01-01'
AND contract.CON_CONTRACT_DATE < '2018-11-01'
);
То, что я должен получить:
Province |
---------
Ontario |
Quebec |
Но я получаю только:
Province |
---------
Ontario |
Мой фактический запрос намного сложнее, чем этот,Я понимаю, что у вас не будет подзапроса, чтобы дать вам то, что даст основной запрос (уже полученная провинция, зачем вам нужно запрашивать его снова), но это общая проблема, которую я получаю, хотя и очень упрощенная.
Любой совет будет принята с благодарностью.Благодаря.