Supponendo che sia la tabella t1 che la tabella emp abbiano chiavi primarie che la vista può identificare come uniche, ho intenzione di indovinare che il problema riguarda il modo in cui si specifica il proprio JOIN. Quello che hai ora sembra che creerà un prodotto cartesiano (ogni riga di una tabella unita indiscriminatamente a ogni riga dell'altro), e che probabilmente non soddisferà i requisiti della tabella preservata dalla chiave (a cui si fa riferimento nella domanda hai linkato sopra).
Si sta specificando un JOIN implicito nella clausola FROM, ma non vedo alcuna condizione JOIN (leggi: clausola WHERE). Osservando lo schema, ho intenzione di pensare che si può aderire sul t1.no = emp.empno come questo:
create view v_t as
select *
from t1,emp
where t1.no = emp.empno;
o con un esplicito registrazione:
create view v_t as
select *
from t1
inner join emp on emp.empno = t1.no;
Oracle permetterà un NATURAL JOIN (senza specificare condizioni JOIN) su tabelle che hanno colonne dello stesso tipo e nome. Certo, dal momento che no e empno hanno nomi diversi, non funzionerà.
Ora che la tua CREATE VIEW è al quadrato, andiamo all'INSERTO. Puoi INSERIRE in una VISTA basata su un JOIN purché la tabella sia conservata con la chiave e non provi a INSERIRE su più di una tabella base in una volta. Che nel tuo caso significa scrivere due istruzioni INSERT separati o la scrittura di un trigger INSTEAD OF:
CREATE TRIGGER v_t_insteadof
INSTEAD OF INSERT ON v_t
FOR EACH ROW
BEGIN
INSERT INTO t1 (no, name)
VALUES(:new.no, :new.name);
INSERT INTO emp (empno, ename, job)
VALUES(:new.no, :new.ename, :new.job);
END v_t_insteadof;
Nota, che è necessario regolare l'INSERT INTO emp basata sui campi aggiuntivi che potrebbero esistere in tale tabella. Inoltre, il comando INSERT dovrà denominare i campi in modo specifico:
INSERT INTO v_t (no, name, ename, job) VALUES (59, 'Bob', 'Bobs Ename', 'Bobs Job');
Non si desidera eseguire questa operazione. È un 'join cartesiano' non dovrebbe essere qualcosa come 'select * da t1, emp dove t1.no = emp.empno' – Ben