Se ho capito bene :
-- Create table
create table TABELLA_A
(
  CODICE_A    VARCHAR2(30) not null,
  DESCRIZIONE VARCHAR2(100)
)
/
-- Create/Recreate primary, unique and foreign key constraints 
alter table TABELLA_A
  add constraint TABELLA_A_PK primary key (CODICE_A)
  using index 
/
-- Create table
create table TABELLA_B
(
  CODICE_B    VARCHAR2(30) not null,
  DESCRIZIONE VARCHAR2(100),
  CODICE_A    VARCHAR2(30)
)
/
-- Create/Recreate primary, unique and foreign key constraints 
alter table TABELLA_B
  add constraint TABELLA_B_PK primary key (CODICE_B)
  using index 
/
alter table TABELLA_B
  add constraint TABELLA_B_FK_TABELLA_A foreign key (CODICE_A)
  references TABELLA_A (CODICE_A)
/
Se voglio inserire in TABELLA_B anche se il codice A non esiste
Trigger
CREATE OR REPLACE TRIGGER T_TABELLA_B_INS
BEFORE INSERT ON TABELLA_B
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
BEGIN
  if :new.codice_a is not null then
   insert into tabella_a (codice_a,descrizione)
   select :new.codice_a,'Descrizione '||:new.codice_a
     from dual
    where not exists (select 1
                        from tabella_a
                       where codice_a = :new.codice_a
                     );
  end if;
END T_TABELLA_B_INS;
In questo modo qualsiasi riga che si inserira' in tabella b con referenza a tabella a si autoalimetera'