Frage

hy

Tabelle:

create table Players (PlayerNo number (4) not null, Name varchar2(15), date_of_birth date,leagno varchar(4));

falsch einfügen:

insert into PLAYERS (PlayerNo,Name,date_of_birth,leagno) VALUES (1,'Philipp K','Jan-10-1999','1')

, was ist falsch?

Fehlercode:

Fehler beim Start in Zeile 1 in Befehl:
insert into PLAYERS (PlayerNo,Name,date_of_birth,leagno) VALUES (1,'Philipp K','Jan-10-1999','1')
Fehlerbericht:
SQL-Fehler: ORA-01858: Ein nicht-numerisches Zeichen wurde gefunden, während ein numerisches Zeichen erwartet wurde
01858. 00000 -  "a non-numeric character was found where a numeric was expected"
*Cause:    The input data to be converted using a date format model was
           incorrect.  The input data did not contain a number where a number was
           required by the format model.
*Action:   Fix the input data or the date format model to make sure the
           elements match in number and type.  Then retry the operation.
War es hilfreich?

Lösung

  

* Ursache: Die Eingangsdaten umgewandelt werden ein Datumsformat-Modell   war              falsch. Die Eingangsdaten enthielten keine Nummer, wo ein   Zahl war              erforderlich durch das Format-Modell.

Das Datum Zeichenfolge, die Sie verwenden nicht mit, was Oracle erwartet. Das Standardformat, iirc, ist DD-Mon-JJJJ, nicht Mo-DD-YYYY, wie Sie zu verwenden versuchen.

Andere Tipps

INSERT
INTO PLAYERS
  (
    PlayerNo,
    Name,
    date_of_birth,
    leagno
  )
  VALUES
  (
    1,
    'Philipp K',
    TO_DATE('Jan-10-1999','Mon-dd-yyyy'),
    '1'
  )

Sie müssen Datum liefern mit dem richtigen Format TO_DATE.

Der Fehler erklärt:

  

"Die Eingabedaten konvertiert werden unter Verwendung von   ein Datumsformat Modell war nicht korrekt.   Die Eingangsdaten enthielten keine   Nummer, wo eine Zahl erforderlich wurde von   das Format Modell "

Was dies bedeutet, ist der Wert, den Sie in die DATE_OF_BIRTH Spalte passieren, werden im falschen Format ist. Standardmäßig Oracle erwartet Datumsangaben im Format DD-MON-YYYY zu sein. Sie sind ein Datum im Format MON-DD-YYYY vorbei.

Es gibt zwei - und drei -. Weisen Umgang mit diesem

  1. Verwenden Sie eine explizite Formatmaske: to_date('Jan-10-1999', 'MON-DD-YYYY')
  2. den NLS_DATE_FORMAT Parameter , bei die Sitzung oder sogar Datenbankebene. F ind Sie hier mehr und < a href = "http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#i2154767" rel = "nofollow"> hier .
  3. Ihre Insert-Anweisung ändern Sie das Datum im erwarteten Format zu übergeben.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top