Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Can't make this insert
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);
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);
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;
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);
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,
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 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">
<TD BGCOLOR="#FFFFCC"><PRE><h3>PartesContratantes</h3><FONT FACE="Arial">
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><FONTFACE="Arial"><B>Lugar de descarga</B>
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ónde la carga</B>
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ó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;
![]() |
![]() |