Я работаю над хранимой процедурой, которая выбирает некоторые данные из нескольких таблиц. Некоторые из таблиц не совсем готовы к тому, чтобы данные извлекались из них, поэтому я подумал, что могу использовать объединение и передать некоторые параметры хранимой процедуре, где можно получить данные и по существу использовать нуль, пока данные не будут готовы.PL/SQL coalesce on value value
PROCEDURE SP (frst_name VARCHAR2 default null)
AS
BEGIN
SELECT
coalesce(frst_name, oldTable.frst_name)
FROM
oldTable left join newTable on oldTable.Id = newTable.Id
END SP;
Ниже приведена упрощенная версия хранимой процедуры. Есть ли способ заставить это работать?
Когда я пытаюсь скомпилировать хранимую процедуру, я получаю Error (37,4): PL/SQL: SQL Statement игнорируется.
UPDATE
Я забыл упомянуть, я использую псевдонимы в присоединиться ведет меня думать, что этот вопрос может быть на самом деле со вторым параметром Coalesce и не переменной, что я прохожу. Я заметил предупреждение на 2 псевдонимов, говоря «новые» отключен от остальной части графа присоединиться
PROCEDURE SP (frst_name VARCHAR2 default null)
AS
BEGIN
SELECT
coalesce(frst_name, oldTable.frst_name)
FROM
oldTable old left join newTable new on oldTable.Id = newTable.Id
END SP;
Я подтвердил это, переключая переменную frst_name с нулевым и все еще получает ту же ошибку, вы, ребята, есть любая идея, что происходит?
решаемых
Спасибо, ребята, но это была глупая ошибка с моей стороны, я использую другой пользователь базы данных для хранимых процедур, и я не ставил синоним или предоставлять доступ к пользовательскому -_- уроку научился!
Вот и весь стек ошибок? Вы не выбираете * в * ничего, но тогда у вас нет локальной переменной для выбора в примере. Аргументы для вашего 'coalesce' также могут быть неправильным способом, который не будет ошибкой, но может не получить желаемого результата. У вас также есть проблема с областью/приоритетом, если ваши имена переменных и столбцов совпадают. Пока неясно, что вы на самом деле делаете. Иногда вы можете упростить свой код настолько, что скрываете проблему и намерение. –