Создать сообщение об ошибке для недопустимого типа входных данных

Я хочу создать сообщение об ошибке для столбца

Предположим, у меня есть столбец - «Employee Number» с типом данных varchar2 в таблице «xyz».

Теперь я импортирую файл .csv или .txt, и там также есть столбец «employee number» с типом данных varchar2, но мне нужны только данные number в этом столбце ...

Пожалуйста, взгляните на минимальный воспроизводимый пример, а затем попробуйте отредактировать свой вопрос, добавив дополнительную информацию (структура таблицы, код, образцы данных,…). Как есть, сложно дать хороший ответ

Aleksej 12.09.2018 09:19

Если вам нужны только числа в этом столбце, определите его как number. Не храните числа в столбцах varchar

a_horse_with_no_name 12.09.2018 09:35

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

D'Mayal 12.09.2018 14:15
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
401
1

Ответы 1

Это зависит от того, как вы будете импортировать свои данные.

Оракул 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 в вашем случае.

Тогда вы можете использовать вторую часть ответа.

J. Chomel 12.09.2018 15:13

Другие вопросы по теме