Запрос с входным параметром не будет компилироваться как представление - PullRequest
0 голосов
/ 03 марта 2020

Итак, я пытаюсь создать представление, которое позволяет пользователю (из внешнего интерфейса) запросить его, указав указанную дату c (в форме varchar / string). Затем представление / запрос вернет данные за месяц указанной даты, а также данные за 13 месяцев до этого. Когда я запускаю следующий запрос и ввожу правильную «строку» / дату, я могу успешно вернуть результаты. Однако, когда я пытаюсь создать представление с тем же запросом, я получаю следующую ошибку: SQL Ошибка: ORA-01027: переменные привязки не разрешены для операций определения данных

Ниже приведен запрос:

SELECT person_name
   , person_age
   , person_dob
FROM person p
WHERE p.person_dob >= add_months(to_date(:par_date, 'yyyy-mm-dd'), -13);

Вот некоторые примеры данных:

 Person_Name        Person_Age                Person_DOB
 Jon                18                        01-01-1990
 Jacob              21                        09-04-1994
 Heidi              28                        04-02-2010
 mark               30                        05-02-2011
 Helga              18                        03-02-2015
 Mike               18                        01-02-1992
 Larry              18                        01-04-1993

Я хочу вернуть следующий результат после указания: par_date как '2020-03-02'.

 Person_Name        Person_Age                Person_DOB
 Heidi              28                        04-02-2010
 mark               30                        05-02-2011
 Helga              18                        03-02-2015

1 Ответ

1 голос
/ 03 марта 2020

Вы, к сожалению, не можете этого сделать. Самое близкое, что вы могли бы сделать, - это создать табличную функцию, но это будет гораздо менее эффективно, чем просто выбор из таблицы с предложением WHERE.

Спросите, что у Тома есть обходной путь, но это сложно , гораздо больше работы, и, возможно, очень неэффективно. Просто используйте предложение WHERE для представления или таблицы

https://asktom.oracle.com/pls/apex/f?p=100: 11: 0 :::: P11_QUESTION_ID: 9536277800346269502

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...