Я выполняю SQL-запросы в Oracle 10g. У меня есть две таблицы (пример данных приведен ниже). я пытаюсь извлечь некоторые поля
из таблицы t2 и обновите пустые столбцы в таблице t1. Я сталкиваюсь со следующей ошибкой:
ORA 01722: недействительный номер (указывает на REGEXP_SUBSTR )
Я понимаю, что это из-за нечисловых данных (например, "НЕТ кода {...}") в моей таблице, которые я пытаюсь извлечь, используя выражение REGEXP_SUBSTR *
Мне было интересно, может ли кто-нибудь предложить мне несколько альтернативных реализаций, чтобы помочь мне «скопировать всю строку» вместо того, чтобы выдавать исключение.
MERGE
INTO temptab t1
USING directory_list t2
ON (REGEXP_SUBSTR(codelist, '[^.]+', 1) = t2.tcode)
WHEN MATCHED THEN
UPDATE
SET t1.tcode = t2.tcode,
t1.des = t2.des
temptab t1
Codelist | T1.tcode | T1.des
1111.1.803.12.X.Z
1000.2.3232.145.M.P
300.12.2982.45.X.Y
NO code {...}
1111.1.803.12.X.Z
directory_list t2
tcode | DES
1000 | powervalue100
300 | powermax300
20 | powermin20
NO code {...} | maxvalue plus
1000 | powervalue100
Спасибо
Новичок