Queria saber si me podian ayudar a resolver un proceso ya que no me sale
Basicamente es que inserte en la tabla histo_ordenes_x_cliente usando 2 cursores, aqui dejo las tablas relacionadas a dicho proceso y el proceso a como lo tengo por si alguien me puede ayudar
CREATE TABLE CLIENTES(
ID_CLIENTE VARCHAR2(3) NOT NULL
DESC_CLIENTE VARCHAR2(30) NOT NULL
TELEFONO VARCHAR2(15) NOT NULL
DIRECCION VARCHAR2(30) NOT NULL
ID_SEGMENTO VARCHAR2(10) NOT NULL
CREDITO VARCHAR2(30) NOT NULL
ESTADO VARCHAR2(1) NOT NULL);
CREATE TABLE SEGMENTO(
ID_SEGMENTO VARCHAR2(10) NOT NULL
DESC_SEGMENTO VARCHAR2(20) NOT NULL);
CREATE TABLLE ORDEN_MAESTRO(
ID_ORDEN VARCHAR2(5) NOT NULL
ID_CLIENTE VARCHAR2(3) NOT NULL
ID_SUCURSAL VARCHAR2(6) NOT NULL
FEC_ORDEN DATE NOT NULL
FEC_ENVIO DATE NOT NULL
EMPLEADO_REGISTRO VARCHAR2(10) NOT NULL
TOTAL NUMBER(15) NOT NULL
ORDEN_COMPLETA VARCHAR2(1) NOT NULL
FORMA_PAGO VARCHAR2(1) NOT NULL);
CREATE TABLE SUCURSAL(
ID_SUCURSAL VARCHAR2(6) NOT NULL
DESC_SUCURSAL VARCHAR2(30) NOT NULL
DIRECCION VARCHAR2(30) NOT NULL);
CREATE TABLLE ORDEN_MAESTRO(
ID_ORDEN VARCHAR2(5) NOT NULL
ID_CLIENTE VARCHAR2(3) NOT NULL
ID_SUCURSAL VARCHAR2(6) NOT NULL
FEC_ORDEN DATE NOT NULL
FEC_ENVIO DATE NOT NULL
EMPLEADO_REGISTRO VARCHAR2(10) NOT NULL
TOTAL NUMBER(15) NOT NULL
ORDEN_COMPLETA VARCHAR2(1) NOT NULL
FORMA_PAGO VARCHAR2(1) NOT NULL);
HISTO_ORDENES_X_CLIENTE(
AÑO DATE NOT NULL
MES DATE NOT NULL
ID_CLIENTE VARCHAR2(10) NOT NULL
TOTAL_ORDEN NUMBER(20) NOT NULL
NUMERO_DE_ORDENES NUMBER(15) NOT NULL);
CREATE OR REPLACE PROCEDURE HISTO
BEGIN
DECLARE
CURSOR C_CLIENTECREDITO IS
SELECT * FROM CLIENTES
WHERE CLIENTES.CREDITO != '1' AND
CLIENTES.ESTADO = 'A' AND
CLIENTES.ID_SEGMENTO=SEGMENTO.ID_SEGMENTO AND
SEGMENTO.DESC_SEGMENTO != 'EDUCACION';
CURSOR MAESTROCLIENTE IS
SELECT * FROM ORDEN_MAESTRO
WHERE ORDEN_MAESTRO.ORDEN_COMPLETA='S' AND
ORDEN_MAESTRO.ID_SUCURSAL=SUCURSAL.ID_SUCURSAL AND
SUCURSAL.DESC_SUCURSAL='SAN JOSE' AND
(BETWEEN TO_DATE('DD-MM-YY','01-01-05)AND TO_DATE('DD-MM-YY','31-12-05')) AND
C_CLIENTECREDITO.ID_CLIENTE=clientes.ID_CLIENTE; REVISAR
V_TOT_ORDENES ORDEN_MAESTRO.TOTAL%TYPE;
V_NUM_ORDENES NUMBER(30):=0;
CONTADOR NUMBER(30):=0;
BEGIN
OPEN C_CLIENTECREDITO;
OPEN MAESTROCLIENTE;
SELECT COUNT(ID_CLIENTE) INTO CONTADOR;
FOR I IN I.CONTADOR REVISAR
FETCH C_CLIENTECREDITO IN ID_EMPLEADO;
IF C_CLIENTECREDITO.ID_EMPLEADO = NULL THEN
MESSAGE('EL REGISTRO ES NULO');
END IF;
SELECT COUNT(MAESTROCLIENTE.ID_ORDEN) INTO V_NUM_ORDENES;
SELECT SUM(MAESTROCLIENTE.TOTAL) INTO V_TOT_ORDENES;
INSERT INTO HISTO_ORDENES_X_CLIENTE VALUES (TO_DATE('YYYY','2005'),TO_DATE('MM','04'),
C_CLIENTECREDITO.ID_CLIENTE, V_TOT_ORDENES,V__NUM_ORDENES);
COMMIT;
END LOOP;
CLOSE C_CLIENTECREDITO;
CLOSE MAESTROCLIENTE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,'Error, no hay registros según seleccion');
PAUSE;
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR(-20000,'Error, MUCHOS DATOS CON LA MISMA CONDICIÓN');
PAUSE;
WHEN others THEN
RAISE_APPLICATION_ERROR(-20000,'Error indefinido');
PAUSE;
END;
END;
/