Проверить значение в таблице или нет при использовании подстроки регулярного выражения оракула - PullRequest
0 голосов
/ 10 марта 2019

Я вставляю в таблицу значения строк, разделенных запятыми, используя регулярное выражение оракула . Перед вставкой я должен проверить эти условия. Если имя устройства существует, перейдите к следующему. Остальное вставить и перейти к следующему. Мой пример кода

PROCEDURE SP_INS_UNIT(
        P_UNIT_NAME   VARCHAR2,
        P_DESCRIPTION VARCHAR2)
    AS
    BEGIN
      INSERT INTO TM_UNIT
        ( UNIT_NAME, DESCRIPTION
        )
      SELECT UNIT_NAME,
        P_DESCRIPTION
      FROM
        (SELECT regexp_substr(P_UNIT_NAME,'[^,]+',1,level) AS UNIT_NAME
        FROM DUAL
          CONNECT BY REGEXP_SUBSTR(P_UNIT_NAME,'[^,]+',1,LEVEL) IS NOT NULL
        );

Любая помощь для этого очень ценным.

1 Ответ

1 голос
/ 10 марта 2019

Вы хотите использовать условие Not exists, подобное этому?

      ..
      ..

      SELECT UNIT_NAME,
        P_DESCRIPTION
      FROM
        (SELECT regexp_substr(P_UNIT_NAME,'[^,]+',1,level) AS UNIT_NAME
        FROM DUAL
          CONNECT BY REGEXP_SUBSTR(P_UNIT_NAME,'[^,]+',1,LEVEL) IS NOT NULL
        ) s 
where not exists
(
 select 1 from TM_UNIT t where s. UNIT_NAME = t.UNIT_NAME
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...