Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Can't make this insert

Can't make this insert

From: Jordi Bellver <jbellver_at_ipgrup.com>
Date: 1997/08/14
Message-ID: <33F2D2B4.86DE4A8F@ipgrup.com>

    Hi,

    First of all, sorry for my poor level of english.

    Second, ... I don't know if this is the correct place to make this question. If it isn't, I'm really sorry about this, and I hope you can tell me where must I go.

    Third, my question:

    I'm trying to make an insert with PL/SQL v3.3 in one table, but I can't. I dont know why ! I become desperado now!

The insert is this:

INSERT INTO wousr.Contratos values
(pcodi_cg,

 codi_cm,
 micodi_contrato,
 direccion_cg,
 tiempo, /* TO_CHAR(sysdate,'DD-MM-YY'), */  condiciones,
 mid_emp,
 milocalidad_especifica,
 UPPER(milogin),
 matricula_cm,
 matricula_rem,
 TO_NUMBER(precio));

and I get an:

    ORA-01722: número incorrecto (incorrect number)

I tried to put manually the values, replacing the variables, and I get the same error.
I verified that the fields defined in the table, match in type and in order with the ones in th insert. Finally, I defined the variables with the %TYPE modifier to ensure the correct type of them.
I don't know what to do, or where to look !

Hope someone can help me !

Thank's in advance.

The full function code, is this:

                                  \|/
                                 (..)
-------------ooOo--(  _ )--oOoo---------------------------

PROCEDURE rcontrato (

   pcodi_cg contratos.codi_cg%TYPE,
   clv_cg char default null,
   codi_cm contratos.codi_cm%TYPE,
   clv_cm char default null,
   matricula_cm contratos.matricula_cm%TYPE,    matricula_rem contratos.matricula_rem%TYPE,    fecha_disp char default null,
   h_cg char default null,
   id_emp char default null,
   direccion_cg contratos.direccion_cg%TYPE,    localidad_cg char default null,
   prov_cg char default null,
   pais_cg char default null,
   localidad_dcg1 char default null,
   provincia_dcg1 char default null,
   pais_dcg1 char default null,
   localidad_dcg2 char default null,
   provincia_dcg2 char default null,
   pais_dcg2 char default null,
   localidad_dcg3 char default null,
   provincia_dcg3 char default null,
   pais_dcg3 char default null,
   localidad_dcg4 char default null,
   provincia_dcg4 char default null,
   pais_dcg4 char default null,
   peso char default null,
   volumen char default null,
   long_camion char default null,
   fma_cg char default null,
   precio contratos.precio_viaje%TYPE,
   condiciones contratos.fma_pago%TYPE,
   cnx char default null,
   x char default null,
   y char default null
   )
IS

mifch_disp date;
midisp_cg number(2);
mih_cg char(60);
mipais_cg char(15);
mifch_dcg date;
mipeso number(3,1);
mivolumen number(3);
milong_camion number(3,1);
mitp_cm number(1);
miesp number(2);

mitp_env_full  char(1);
mitp_env_half  char(1);
mitp_env_pq  char(1);
mifma_cg_detras  char(1);

mifma_cg_lateral char(1);
mifma_cg_arriba char(1);
mipaletizado char(1);
miadr char(1);
miregion_cg char(30);
miprov_cg char(30);
milocalidad_cg char(60);
micp_cg char(10);
miclv_cg char(10);
miinformacion long;
mifch_h_creacion date;
mitf_ctct char(15);
mipais_ctct char(15);
mipers_ctct char(30);

micodi_contrato contratos.codi_contrato%TYPE; micnx char(15);
milogin contratos.login%TYPE;
milogin2 char(12);
pcodi_cm char(10);
dcg_rec DEST_CG_B%ROWTYPE;

mides_pais1  char(15);
mides_cp1  char(10);
mides_prov1  char(30);
mides_reg1  char(30);
mides_loc1  char(60);
miult_dst1  char(1);

vuelta number(3);
tiempo contratos.fch_contrato%TYPE;
cm_rec Camiones%ROWTYPE;
cg_rec Cargas%ROWTYPE;
usu_cg_rec Usuarios%ROWTYPE;
usu_rec Usuarios%ROWTYPE;
cuantos number(2);
cuantos2 number;
tiempo2 varchar2(50);
mid_emp contratos.id_emp_cg%TYPE;
milocalidad_especifica
contratos.localidad_especifica_cg%TYPE;
mipcodi_cg char(10);
micif_cg char(15);
micif_cm char(15);

CURSOR c1 IS
  SELECT pais,region,provincia,cp,ult_dst,localidad   FROM wousr.DEST_CG
  WHERE pcodi_cg=codi_cg;

BEGIN IF funciones.CompruebaCnx(cnx,'GRANDE')=FALSE THEN   GOTO final;
END IF;   tiempo:=TO_DATE(TO_CHAR(sysdate,'AD DD-MM-YYYY HH24:MI:SS'),'AD DD-MM-YYYY HH24:MI:SS'); /*generacion del codigo de contrato*/
micodi_contrato:=random.segundos;
micnx:=cnx;
  BEGIN
    SELECT s.login INTO milogin
    FROM seguridad s
    WHERE s.cnx=micnx;
  EXCEPTION
    WHEN OTHERS THEN

      mensajes.noExisteConexion;
      goto final;

  END;   milogin2:=RTRIM(milogin);
  mipcodi_cg:=pcodi_cg;

SELECT * INTO usu_rec FROM Usuarios usu WHERE usu.login=milogin2;

SELECT * INTO usu_cg_rec
FROM Usuarios u
WHERE u.login=(SELECT cg.pers_ctct FROM Cargas cg where cg.codi_cg=mipcodi_cg);

SELECT uccg.cif INTO micif_cg
FROM Usr_cliente uccg
WHERE uccg.login=(SELECT cg.pers_ctct FROM Cargas cg where cg.codi_cg=mipcodi_cg);

SELECT uccm.cif INTO micif_cm
FROM Usr_cliente uccm
WHERE uccm.login=(SELECT cg.pers_ctct FROM Cargas cg where cg.codi_cg=mipcodi_cg);

  SELECT * INTO cg_rec FROM wousr.Cargas c WHERE(c.codi_cg=mipcodi_cg);

  INSERT INTO wousr.Cargas_b VALUES
(cg_rec.codi_cg,

 cg_rec.fch_disp,
 cg_rec.disp_cg,
 cg_rec.h_cg,
 cg_rec.h_cg_emp,
 cg_rec.pais_cg,
 cg_rec.region_cg,
 cg_rec.prov_cg,
 cg_rec.localidad_cg,
 cg_rec.cp_cg,
 cg_rec.fch_dcg,
 cg_rec.peso,
 cg_rec.volumen,
 cg_rec.long_camion,
 cg_rec.paletizado,
 cg_rec.adr,
 cg_rec.fma_cg_detras,
 cg_rec.fma_cg_lateral,
 cg_rec.fma_cg_arriba,
 cg_rec.tp_env_full,
 cg_rec.tp_env_half,
 cg_rec.tp_env_pq,
 cg_rec.tp_cm,
 cg_rec.esp,
 cg_rec.pers_ctct,
 cg_rec.tf_ctct,
 cg_rec.pais_ctct,
 cg_rec.fch_h_creacion,
 cg_rec.clv_cg,
 cg_rec.informacion);

cuantos:=0;
OPEN c1;
LOOP
  FETCH c1 INTO
mides_pais1,mides_reg1,mides_prov1,mides_cp1,miult_dst1,mides_loc1;

  EXIT WHEN c1%NOTFOUND;
  cuantos:=cuantos+1;
  INSERT INTO DEST_CG_B VALUES
(pcodi_cg,

 mides_pais1,
 mides_reg1,
 mides_prov1,
 mides_loc1,
 mides_cp1,
 miult_dst1,

 'PARA FUTURAS VERSIONES',
 'PARA FUTURAS VERSIONES'); END LOOP;
CLOSE c1;

  pcodi_cm:=codi_cm;

  SELECT * INTO cm_rec FROM wousr.Camiones cm WHERE(cm.codi_cm=pcodi_cm);

  INSERT INTO wousr.Camiones_b VALUES
(cm_rec.codi_cm,

 cm_rec.fch_disp,
 cm_rec.dias_cm,
 cm_rec.h_cm,
 cm_rec.pais_cm,
 cm_rec.region_cm,
 cm_rec.prov_cm,
 cm_rec.localidad_cm,
 cm_rec.cp_cm,
 cm_rec.tp_cm,
 cm_rec.pma,
 cm_rec.volumen,
 cm_rec.adr,
 cm_rec.cm_largo,
 cm_rec.cm_ancho,
 cm_rec.cm_alto,
 cm_rec.rem_largo,
 cm_rec.rem_ancho,
 cm_rec.rem_alto,
 cm_rec.fma_cg_detras,
 cm_rec.fma_cg_lateral,
 cm_rec.fma_cg_arriba,
 cm_rec.esp,
 cm_rec.pers_ctct,
 cm_rec.tf_ctct,
 cm_rec.pais_ctct,
 cm_rec.fch_hms_cre,
 cm_rec.paletizado,
 cm_rec.clv_cm,
 cm_rec.informacion);

INSERT INTO DEST_CM_B
 SELECT * FROM DEST_CM
 WHERE (codi_cm=pcodi_cm);

INSERT INTO ORG_CM_B
 SELECT * FROM ORG_CM
 WHERE (codi_cm=pcodi_cm);
mid_emp:=RTRIM(id_emp);
milocalidad_especifica:=RTRIM(localidad_cg);

/*

htp.p(pcodi_cg);
htp.p(codi_cm);
htp.p(micodi_contrato);
htp.p(direccion_cg);
htp.p(tiempo);
htp.p(condiciones);
htp.p(mid_emp);
htp.p(milocalidad_especifica);
htp.p(milogin);
htp.p(matricula_cm);
htp.p(matricula_rem);
htp.p(TO_NUMBER(precio));

htp.p('.');
*/
-- begin

INSERT INTO wousr.Contratos values
(pcodi_cg,

 codi_cm,
 micodi_contrato,
 direccion_cg,
 tiempo, /* TO_CHAR(sysdate,'DD-MM-YY'), */  condiciones,
 mid_emp,
 milocalidad_especifica,
 UPPER(milogin),
 matricula_cm,
 matricula_rem,
 TO_NUMBER(precio));

htp.p('#');
DELETE FROM DEST_CG dcg WHERE dcg.codi_cg=pcodi_cg;

DELETE FROM Cargas cg WHERE cg.codi_cg=pcodi_cg;

DELETE FROM ORG_CM ocm WHERE ocm.codi_cm=pcodi_cm;

DELETE FROM DEST_CM dcm WHERE dcm.codi_cm=pcodi_cm;

DELETE FROM Camiones cm WHERE cm.codi_cm=pcodi_cm; IF NOT Controla_logs(micnx,'CAMIÓN DADO DE BAJA POR CONTRATO',pcodi_cm)
THEN GOTO final;
END IF;
/*INSERT INTO Hist_acciones

           values(tiempo,pcodi_cm,milogin,  'CAMIÓN DADO DE BAJA POR CONTRATO',SIGTE_ACCION.NEXTVAL); */
/*
LOOP
 select count(*) into cuantos2 from Hist_acciones  where fch_hm=tiempo;
 IF(cuantos2>0)
 THEN tiempo:=tiempo-((1/24)*(1/3600));
 ELSE EXIT;
 END IF;
END LOOP;
*/
IF NOT Controla_logs(micnx,'CARGA DADA DE BAJA POR CONTRATO',pcodi_cg)
THEN GOTO final;
END IF;
/*IF NOT Controla_logs(micnx,'CONTRATO DADO DE ALTA',micodi_contrato)
THEN GOTO final;
END IF;*//* Aquesta inserción es redundante, pues con los dos mensajes anteriores ya

   se sabe que se ha dado de baja y se ha cerrado el contrato. Por razones

   historicas no se ha dejado alreves(que hubiese reducido el numero de

   inserciones en los historicos)*/

commit;

htp.p('<HTML>

<HEAD>

        <TITLE>Resultado Contrato</TITLE>

</HEAD>

<BODY
BACKGROUND="http://www.wotrant.com/privado/wtransnet/fons.jpg" LINK="#0000AA" VLINK="#FF33CC" ALINK="#660099">'); IF (cg_rec.clv_cg=clv_cg) and (cm_rec.clv_cm=clv_cm)THEN

htp.p('<FORM
ACTION="http://www.wotrant.com:11113/woapl/owa/rcontrato" METHOD="POST">    <center> <font size=+3>CONTRATO DE VIAJE '||micodi_contrato||'<br>
<img src=http://www.wotrant.com/privado/wtransnet/ralla.gif valign=top width=300></font></center><p>

        <center>
        <TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0"
WIDTH="400" BGCOLOR="#FFFFCC">
<TR VALIGN="TOP">
                <TD BGCOLOR="#FFFFCC"><PRE><h3>Partes
Contratantes</h3><FONT FACE="Arial">
<pre>
Nº de carga : '||pcodi_cg||' Clave de la carga: '||clv_cg||'
Nº de camión: '||codi_cm||' Clave del camión : '||clv_cm||'
Matrícula del camión: '||matricula_cm||' Matrícula remolque : '||matricula_rem||' </PRE>
<pre><font face=arial>
Empresa Remitente: '||usu_cg_rec.id_emp||' Dirección: '||usu_cg_rec.direccion||' Localidad: '||usu_cg_rec.localidad||'
C.I.F.: '||micif_cg||'

Empresa Transportista: '||usu_rec.id_emp||' Dirección: '||usu_rec.direccion||'
Localidad: '||usu_rec.localidad||'
C.I.F.: '||micif_cm||'
Matrícula de camión: '||matricula_cm||' Matrícula de remolque: '||matricula_rem||' </font></PRE>

</TD></TR>

        <TR VALIGN="TOP">
                <TD BGCOLOR="#FFFFCC">
<pre><FONT FACE="Arial">
Fecha de carga:'||cg_rec.fch_disp || '        Hora de
carga:      ' || h_cg || '

<B>Lugar de carga</B>
Nombre de la empresa: '||usu_rec.id_emp||' Dirección de carga: '||usu_rec.direccion||' Población específica: '||cg_rec.localidad_cg||' Provincia: ' || cg_rec.prov_cg || '
País: ' || cg_rec.pais_cg || '
</PRE></FONT>
</TD>

        </TR>');

htp.p('         <TR VALIGN="TOP" BGCOLOR="#EEEEEE">
                <TD BGCOLOR="#FFFFCC"><PRE><FONT
FACE="Arial"><B>Lugar de descarga</B>
<table>
<tr><td>Ciudad</td><td>Provincia</td><td>Pa&#237;s</td></tr><font face=arial>');
cuantos:=0;

IF pais_dcg1 IS NOT NULL THEN

  htp.p('<tr><td>'||localidad_dcg1||' </td><td> '||provincia_dcg1|| '</td><td> '||pais_dcg1||' </td></TR>');

END IF;
IF pais_dcg2 IS NOT NULL THEN

  htp.p('<tr><td>'||localidad_dcg2||' </td><td> '||provincia_dcg2|| '</td><td> '||pais_dcg2||' </td></TR>');

END IF;
IF pais_dcg3 IS NOT NULL THEN

  htp.p('<tr><td>'||localidad_dcg3||' </td><td> '||provincia_dcg3|| '</td><td> '||pais_dcg3||' </td></TR>');

END IF;
IF pais_dcg4 IS NOT NULL THEN

  htp.p('<tr><td>'||localidad_dcg4||' </td><td> '||provincia_dcg4|| '</td><td> '||pais_dcg4||' </td></TR>');

END IF; htp.p('</font></TABLE></td></tr>');
htp.p(' <TR VALIGN="TOP" >

                <TD BGCOLOR="#FFFFCC">
                        <PRE><FONT FACE="Arial"><B>Descripción
de la carga</B>
Peso: ' || peso || '
Volumen: ' || volumen || '
Mts. ocupación: ' || long_camion);

htp.prn('Forma carga: ' || fma_cg);

htp.nl;
htp.p('Precio acordado de viaje: ' || precio || ' Condiciones de pago:

     ' || condiciones || '

</td></TR>
</TABLE>
<center>
</BLOCKQUOTE>');

ELSE htp.p('ERROR:Alguna de las contraseñas no coincide con la facilitada al dar de alta

            la carga/cami&oacute;n.');
END IF;
htp.p('</BODY></HTML>');

<<final>>
  null;

EXCEPTION
  WHEN OTHERS THEN
    htp.p(SQLERRM);
/* htp.p('Ha ocurrido un error mientras se daba de alta un contrato');*/
 htp.p('<br><br><h3><center>Alta realitzada</center></h3>');

    rollback;
END;


Received on Thu Aug 14 1997 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US