Se puede hacer de dos formas:
Insert into TABLE
(CAMPOS) select CAMPOS a insertar from
dual where not exists (select null from table where codigo = CODIGO);
O con un procedure:
DECLARE
V_CONTADOR NUMBER(10):=0;
BEGIN
SELECT count(*) INTO V_CONTADOR FROM TABLE WHERE CAMPO=VALOR;
IF V_CONTADOR=0 then
Insert into TABLE(CAMPOS) values (CAMPOS);
END IF;
END;
V_CONTADOR NUMBER(10):=0;
BEGIN
SELECT count(*) INTO V_CONTADOR FROM TABLE WHERE CAMPO=VALOR;
IF V_CONTADOR=0 then
Insert into TABLE(CAMPOS) values (CAMPOS);
END IF;
END;