У меня есть длинная хранимая процедура. Многократно в хранимой proc, подзапрос ниже (в скобках) повторяется.Как использовать подзапрос
and datasetid IN
(select datasetid from Reportingdatasetmembers
where ReportingDatasetID = param_in_ReportingDataSetID)
Могу ли я консолидировать этот код, поскольку он повторяется? I.e., в SQL Server, я бы объявил переменную таблицы. Затем вставьте строки в переменную таблицы. Затем запрос к переменной таблицы. По крайней мере, это помогает применять принцип DRY.
Есть ли эквивалентный способ консолидировать это в Oracle? Коллекции таблиц Oracle, похоже, не уменьшают базу кода.
Я считаю, что CTE не может быть и речи, потому что их нельзя использовать повторно?
Является ли 'param_in_ReportingDataSetID' динамическое значение, или оно будет исправлено? –
Это динамический (числовой параметр) – Hoppe
CTEs - отличный способ повторного использования кода, но я не думаю, что они принимают параметры. –