Q:

Asignación de atributos de una tabla respecto a atributos de otra tabla en PL/SQL

Tengo la tabla piezas y la tabla LíneasFacturasProvedores, ambas están unidas por el atributo OID_P. Mi pregunta es si hay alguna forma de que el atributo precioCompra de la tabla Piezas sea igual al atributo precioUnitario de la tabla LíneasFacturasProveedores si son la misma pieza, es decir, si poseen el mismo OID_P.
CREATE TABLE Piezas(
    OID_P               INTEGER,
    nombre              VARCHAR2(50) UNIQUE NOT NULL,
    cantidad            INTEGER NOT NULL,
    precioCompra        NUMBER(5,2) NOT NULL,
    precioVenta         NUMBER(5,2) AS (precioCompra * 1.2),
    numAlmacén          INTEGER NOT NULL,
    CONSTRAINT cantidadPieza CHECK(cantidad >= 0),
    PRIMARY KEY         (OID_P),
    FOREIGN KEY         (numAlmacén) REFERENCES Almacenes
);

CREATE TABLE LíneasFacturasProveedores(
    OID_LFP             INTEGER,
    cantidad            INTEGER NOT NULL,
    precioUnitario      NUMBER(5,2) NOT NULL,
    numFactura          INTEGER NOT NULL,
    OID_P               INTEGER NOT NULL,
    CONSTRAINT cantidadFacProv CHECK(cantidad > 0),
    PRIMARY KEY         (OID_LFP),
    FOREIGN KEY         (numFactura) REFERENCES FacturasProveedores,
    FOREIGN KEY         (OID_P) REFERENCES Piezas
);

A:

como estás?
Si que quieres es actualizar el campo via sql podes hacer:
update table piezas a
set precioCompra = 
(select precioUnitario from  LíneasFacturasProveedores b
 where b.OID_P = a.OID_P)                                    

Si quieres hacer algo aumtomático, tal vez necesites cambiar la forma es que esta diseñada las tablas eso o via trigger o procedimiento almacenado a nivel de la base de datos.
Abrazo

