Ответ, который предполагает, возможно, использование представления, предполагает, что целью является возможность выполнить два разных алгоритма с результатами одного и того же запроса. Конечно, это один из способов передачи курсора, но я хотел выполнить один и тот же алгоритм с результатами двух разных запросов. У меня было две процедуры, каждая из которых имела свое собственное назначение и содержательное имя, которое использовало один и тот же алгоритм на основе разных запросов, поэтому каждая из них открывала курсор с соответствующим запросом и затем вызывала общую процедуру для выполнения алгоритма.
Итак, почему бы не передать SQL запроса, так как текст имеет внутреннюю процедуру, открывающую курсор там? Потому что, если вы сделаете это, и в SQL есть какие-либо связанные переменные, вам нужно будет передать их вместе с текстом, что означает, что два (или более) запроса должны не только возвращать один и тот же набор столбцов, но и принимать одинаковое число. и типы связанных переменных. Если вместо этого вы передаете курсор, курсор открывается и переменные связываются в контексте процедуры, в которой объявлен SQL, но строки обрабатываются в контексте процедуры, в которую передается курсор.