27. februar 2005 - 22:42
Der er
10 kommentarer og 1 løsning
Oracle fejl med dato.
Jeg får følgende fejl når jeg prøver at lægge data ind. ORA-1830: datoformatbillede slutter før konvertering af hele inputstrengen Jeg kan ikke gennemskue hvad jeg gør galt. Her er min kode: createCommandSet(); objCmd.CommandType=System.Data.CommandType.StoredProcedure; objCmd.CommandText=commandText; objCmd.Parameters.Add("res",Oracle.DataAccess.Client.OracleDbType.Int32,System.Data.ParameterDirection.ReturnValue); objCmd.Parameters.Add("pBestilDato",Oracle.DataAccess.Client.OracleDbType.Date,System.Data.ParameterDirection.Input); objCmd.Parameters.Add("pBestilBemaerk",Oracle.DataAccess.Client.OracleDbType.Varchar2,System.Data.ParameterDirection.Input); objCmd.Parameters.Add("pStedNr",Oracle.DataAccess.Client.OracleDbType.Int32,System.Data.ParameterDirection.Input); objCmd.Parameters.Add("pOenskeDato",Oracle.DataAccess.Client.OracleDbType.Date,System.Data.ParameterDirection.Input); objCmd.Parameters["pBestilDato"].Value="2-2-2004"; objCmd.Parameters["pBestilBemaerk"].Value="hejsa"; objCmd.Parameters["pStedNr"].Value="331"; objCmd.Parameters["pOenskeDato"].Value="2-2-2004"; return (object)objCmd.ExecuteNonQuery(); Jeg håber der er hjælp at hente her
Annonceindlæg fra Infor
27. februar 2005 - 22:47
#1
Prøv: objCmd.Parameters["pBestilDato"].Value=DateTime.Parse("2-2-2004"); ... objCmd.Parameters["pOenskeDato"].Value=DateTime.Parse("2-2-2004");
27. februar 2005 - 23:09
#2
Det ser fint ud arne :) Nu får jeg blot følgende fejl: ORA-01722: invalid number ORA-06512: at "VEGAS_2.WWW_DB_ACCESS", line 88 ORA-06512: at line 1 Dette er selve den funktion:(linie 74-105) FUNCTION INSERT_WWW_BESTIL( pBestilDato IN DATE, pBestilBemaerk IN VARCHAR2, pStedNr IN NUMBER, pOenskeDato IN DATE) RETURN NUMBER IS BestilNr NUMBER; BEGIN SELECT SA_Bestil_Nr.NEXTVAL INTO BestilNr FROM dual; INSERT INTO TA_WWW_BESTIL ( Bestil_nr, Bestil_Dato, Bestil_Bemaerk , Sted_Nr, Aktiv, Oenske_Dato) VALUES( BestilNr, pBestilDato, pBestilBemaerk, pStedNr, 'J', -- pAktiv pOenskeDato); RETURN BestilNr; END;
27. februar 2005 - 23:09
#3
Håber det er okay jeg udvider spørgsmålet lidt :)
27. februar 2005 - 23:14
#4
Jo men jeg ved ikke om jeg kan løse det. Prøv: objCmd.Parameters["pStedNr"].Value=331;
27. februar 2005 - 23:16
#5
Det har jeg prøvet...Det hjalp ikke :( Den siger det er inde i dbfunktionen jo..
27. februar 2005 - 23:18
#6
Jeg gætter ! Jeg undrer mig iøvrigt over at pStedNr er NUMBER og ikke INTEGER i FUNCTION'en når den er Int32 i C#
27. februar 2005 - 23:22
#7
Hvad skal jeg ellers kalde den i c#?
27. februar 2005 - 23:26
#8
SQL NUMBER er C# decimal og så skal du kun finde en god Oracle.DataAccess.Client.OracleDbType.
27. februar 2005 - 23:26
#9
Men jeg ved ikke om det har noget med problemet at gøre
28. februar 2005 - 08:35
#10
INSERT INTO TA_WWW_BESTIL ( Bestil_nr, Bestil_Dato, Bestil_Bemaerk, Sted_Nr, Aktiv, Oenske_Dato) VALUES( BestilNr, to_date(pBestilDato, 'DD-MON-YYYY, HH:MI PM'), pBestilBemaerk, pStedNr, 'J', -- pAktiv to_date(Oenske_Dato, 'DD-MON-YYYY, HH:MI PM')); RETURN BestilNr; you're probably better off explicitly using a date conversion such as: insert into EJB.POCTradeBeanTbl (trade_oid, security_oid, position_oid, amount, price, tradeTime) values (1, 506, 1, 878.63, 7.16, to_date('30-NOV-1992, 12:10 PM', 'DD-MON-YYYY, HH:MI PM');
02. marts 2005 - 09:06
#11
Jeg fandt fejlen. Det var en SQL fejl. tak for jeres hjælp.
Computerworld tilbyder specialiserede kurser i database-management