Комментарии PL/SQL вызывают ошибки компиляции?

#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. Да, он ДОЛЖЕН игнорировать эти комментарии, но он просто не будет этого делать. Лучшее решение-сдаться и просто делать все, что он от вас хочет… Большинство инструментов, с которыми у меня были проблемы с этими вещами, основаны на Интернете.