Я хочу создать сообщение об ошибке для столбца
Предположим, у меня есть столбец - «Employee Number
» с типом данных varchar2
в таблице «xyz
».
Теперь я импортирую файл .csv
или .txt
, и там также есть столбец «employee number
» с типом данных varchar2
, но мне нужны только данные number
в этом столбце ...
Если вам нужны только числа в этом столбце, определите его как number
. Не храните числа в столбцах varchar
на самом деле я хочу создать собственное исключение, в котором будет отображаться мое сообщение об ошибке для недопустимого типа данных для определенного столбца.
Это зависит от того, как вы будете импортировать свои данные.
SQL*Loader
Загрузчик SQL может автоматически проверять типы ввода и выдавать соответствующие сообщения об ошибках.
PL/SQL
Если вы решите написать свою собственную программу импорта на PL / SQL, вы можете использовать Custom exception
при обнаружении случая. Это будет выглядеть так:
declare
ex_custom EXCEPTION;
PRAGMA EXCEPTION_INIT( ex_custom, -20001 ); -- here you define a custom exception (by id number)
begin
-- here you import...
if error_detected then
raise_application_error( -20001, 'Wrong type ' );
end;
exception -- then handle your exception
when ex_custom
then
dbms_output.put_line( sqlerrm || 'error' );
end;
SQL> /
ORA-20001: Wrong type error
Обязательно советую выбрать решение sqlloader
в вашем случае.
Тогда вы можете использовать вторую часть ответа.
Пожалуйста, взгляните на минимальный воспроизводимый пример, а затем попробуйте отредактировать свой вопрос, добавив дополнительную информацию (структура таблицы, код, образцы данных,…). Как есть, сложно дать хороший ответ