No vas a cachar lo que estoy haciendo (o quizás sí

awkjawk) pero para que creas que lo hago
CREATE TABLE CLIENTES(
RUT NUMBER,
NOMBRE VARCHAR(15) NOT NULL,
APELLIDO VARCHAR(15) NOT NULL,
FECHA_NAC DATE,
EDAD NUMBER(2,0),
CONSTRAINT CLIENTES_PK PRIMARY KEY (RUT));
CREATE TABLE PRODUCTOS(
ID NUMBER,
NOMBRE VARCHAR(20) NOT NULL,
PRECIO NUMBER NOT NULL,
CONSTRAINT PRODUCTOS_PK PRIMARY KEY(ID));
CREATE TABLE COMPRAS(
ID NUMBER,
CLIENTE NUMBER,
PRODUCTO NUMBER,
CANTIDAD NUMBER NOT NULL,
TOTAL NUMBER,
CONSTRAINT COMPRAS_PK PRIMARY KEY (ID),
CONSTRAINT COM_CL_FK FOREIGN KEY (CLIENTE) REFERENCES CLIENTES(RUT),
CONSTRAINT COM_PR_FK FOREIGN KEY (PRODUCTO) REFERENCES PRODUCTOS(ID));
CREATE SEQUENCE SEQ_PRODUCTOS
MINVALUE 1000
NOMAXVALUE
START WITH 1000
INCREMENT BY 10
NOCACHE
NOCYCLE;
CREATE SEQUENCE SEQ_COMPRA
MAXVALUE 500
NOMINVALUE
START WITH 500
INCREMENT BY -65
NOCACHE
NOCYCLE;
CREATE OR REPLACE TRIGGER TR_PRODUCTOS
BEFORE INSERT ON PRODUCTOS
FOR EACH ROW
BEGIN
SELECT SEQ_PRODUCTOS.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER TR_COMPRAS
BEFORE INSERT ON COMPRAS
FOR EACH ROW
BEGIN
SELECT SEQ_COMPRA.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
CREATE OR REPLACE PROCEDURE ING_CLIENTES
(NRUT IN CLIENTES.RUT%TYPE, NNOMBRE IN CLIENTES.NOMBRE%TYPE, NAPELLIDO IN CLIENTES.APELLIDO%TYPE, NFECHA IN CLIENTES.FECHA_NAC%TYPE)
IS
NACT NUMBER := 0;
NYEAR NUMBER := 0;
NEDAD NUMBER := 0;
BEGIN
SELECT EXTRACT(YEAR FROM NFECHA) INTO NYEAR FROM DUAL;
SELECT EXTRACT(YEAR FROM SYSDATE) INTO NACT FROM DUAL;
NEDAD := NACT - NYEAR;
INSERT INTO CLIENTES VALUES (NRUT, NNOMBRE, NAPELLIDO, NFECHA, NEDAD);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE ING_PRODUCTOS
(NNOMBRE IN PRODUCTOS.NOMBRE%TYPE, NPRECIO IN PRODUCTOS.NOMBRE%TYPE)
IS
BEGIN
INSERT INTO PRODUCTOS(NOMBRE,PRECIO) VALUES (NNOMBRE, NPRECIO);
END;
/
CREATE OR REPLACE PROCEDURE ING_COMPRA
(NCLIENTE IN COMPRAS.CLIENTE%TYPE, NPRODUCTO IN COMPRAS.PRODUCTO%TYPE, NCANTIDAD IN COMPRAS.CANTIDAD%TYPE)
IS
PRECIOP NUMBER := 0;
NTOTAL NUMBER := 0;
BEGIN
SELECT PRECIO INTO PRECIOP FROM PRODUCTOS WHERE ID = NPRODUCTO;
NTOTAL := PRECIOP * NCANTIDAD;
INSERT INTO COMPRAS(CLIENTE, PRODUCTO, CANTIDAD, TOTAL) VALUES (NCLIENTE, NPRODUCTO, NCANTIDAD, NTOTAL);
END;
/
CREATE OR REPLACE PROCEDURE BUSCA_COMPRAS
(NCLIENTE IN CLIENTES.RUT%TYPE)
IS
F_COMPRAS COMPRAS%ROWTYPE;
CURSOR COMP IS SELECT * FROM COMPRAS;
BEGIN
SELECT * INTO F_COMPRAS FROM COMPRAS WHERE CLIENTE = NCLIENTE;
END;
/
llevo todo eso ya

xd