2014-01-26 2 views
-1

Я хочу сделать типоракул создать тип под тип в Java

try { 
    stmt.execute("CREATE OR REPLACE TYPE angestellte_t UNDER person_t (Name VARCHAR(20))"); 
} 
catch (SQLException e) { 
    e.printStackTrace(); 
} 

Тип under_t не существует и SQLException не называется, но тип создается после этой команды в базе данных, и это показывает (в базе данных), что есть ошибки.

Могу ли я видеть ошибки при компиляции в java?
Почему он не показывает SQLException?

Благодаря

+2

Вы действительно должны перечитывать и переписывать это. –

ответ

2

Создания объектов PL/SQL не бросает исключение, единственный признак того, что что-то пошло не так доступно через предупреждение о объекте оператора.

Итак, после запуска DDL используйте stmt.getWarnings(), чтобы узнать, были ли были любые предупреждения. Если getWarnings() возвращает что-то еще, чем null, то что-то пошло не так.

Это соответствует сообщению «Предупреждения: Тип, созданному с компиляцией ошибками», которые вы получили бы в SQL * Plus (если вы звоните SQLWarning.getMessage() вы фактически получаете подобное сообщение).

Если было предупреждение, то единственный способ, чтобы получить сообщение реальной ошибки является запрос к представлению ALL_ERRORS в вашем случае вы должны запустить:

select line, position, text 
from all_errors 
where type = 'TYPE' 
and name = 'ANGESTELLTE_T' 
order by line; 
Смежные вопросы