#oracle #plsql #compiler-errors #comments
Вопрос:
Выпуск Oracle Database 12c Enterprise Edition 12.2.0.1.0
У меня есть этот код:
CREATE OR REPLACE PROCEDURE temp_procedure (
/*-------------------------------------------------
comment
--------------------------------------------------*/
x in VARCHAR2
) IS
BEGIN
NULL;
END;
/
Мой коллега написал мне, что, когда он пытался скомпилировать его, у него была ошибка компиляции.
Но этот код работал на него:
CREATE OR REPLACE PROCEDURE temp_procedure (
/********************************************************
comment
*********************************************************/
x IN VARCHAR2
) IS
BEGIN
null;
END;
/
Ранее, когда я использовал SQL*Plus 11.2.0.3.0 для компиляции своего кода, он не показывал ошибок.
Кроме того, я проверил статус через
SELECT status
FROM dba_objects
WHERE object_name = 'TEMP_PROCEDURE'
статус = Действителен.
Получив эту заметку, я попытался скомпилировать ее в
ЖАБА 12.1.0.22 и разработчик PL/SQL 10.0.5.1710. Я получил тот же результат — ошибок компиляции нет, и процедура действительна.
У кого-нибудь есть какие-либо идеи, почему мои комментарии могли привести к сбою компиляции, а его комментарии-нет?
Я предполагаю, что это был простой способ изменить формат моего комментария на его формат комментария, завернутый в контекст «ошибка».
Комментарии:
1. «Мой коллега написал мне, что, когда он пытался скомпилировать его, у него была ошибка с дополнением». > > > Где именно ваш коллега пытался его скомпилировать? SQL*Плюс? Разработчик SQL? ЖАБА? Оракул Апекс? Какую версию этого инструмента они использовали?
2. Запрос статуса должен использоваться
where object_name = 'TEMP_PROCEDURE'
, а неwhere object_name = 'temp_procedure'
.3. @Littlefoot, насколько я знаю, мы не используем Apex, так что это был один из инструментов, которые я использовал. Я жду его ответа завтра.
4. @WilliamRobertson — да, вы правы. Исправлено
Ответ №1:
Ответ, скорее всего, прост и понятен: ваш коллега использовал инструмент, который плохо обрабатывает комментарии. Некоторые инструменты отчетности вообще не обрабатывают такие вещи.
Комментарии:
1. Знаете ли вы такие инструменты? Я попробовал 3 программы, которые мы использовали, и все они не показали ошибок компиляции. Я никогда не пытался напрямую вызывать процедуру при составлении отчета Fastreport. Но даже в этом случае он должен игнорировать эти комментарии.
2. Я работал с другими инструментами отчетности, но не с Apex. Да, он ДОЛЖЕН игнорировать эти комментарии, но он просто не будет этого делать. Лучшее решение-сдаться и просто делать все, что он от вас хочет… Большинство инструментов, с которыми у меня были проблемы с этими вещами, основаны на Интернете.