Как узнать номер строки, имя процедуры в МН / SQL в случае ошибки

Я использую форму D2k 6i и получаю ошибку на форме от сохраненной базы данных (oracle9i) нарушенное ограничение (.) РТОВ-00001:Unique процедуры, но я не могу проследить, из которой процедуры это прибывает. может кто-либо помогать мне относительно этого

1
задан Greg Burghardt 2 March 2015 в 21:54
поделиться

2 ответа

Опубликование вашего исключения вместе с вашим вопросом даст нам лучшее представление о том, с чем вы столкнулись.

Обычно исключение сообщает пакет и номер строки в сообщении об ошибке. Исходя из этого, вы можете запросить таблицу USER_SOURCE:

SELECT text 
FROM user_source 
WHERE type = 'PACKAGE BODY' 
  AND name = 'myProcName' 
  AND line = [the line number];

Может быть полезно узнать больше о контексте, в котором была вызвана ошибка. Для этого можно использовать оператор `BETWEEN':

SELECT text 
FROM user_source 
WHERE type = 'PACKAGE BODY' 
  AND name = 'myProcName' 
  AND line BETWEEN [the line number - 5] AND [the line number +5];
0
ответ дан 3 September 2019 в 00:41
поделиться

Вот решение, которое нашел OP:

ОК, в формах D2k есть триггер ON-ERROR, где вы можете использовать функцию DBMS_ERROR_TEXT чтобы получить процедуру, укажите номер строки имени пакета оператора, из которого возникла ошибка

1
ответ дан 3 September 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: