Question

hy

Tableau:

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

mauvaise insertion:

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

ce qui est erroné?

code d'erreur:

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.
Était-ce utile?

La solution

  

* Cause: Les données d'entrée à convertir en utilisant un modèle de format de date   était              Incorrect. Les données d'entrée ne contient pas de numéro où   nombre était              requis par le modèle de format.

La chaîne de date que vous utilisez ne correspond pas à ce que l'oracle attend. Le format par défaut, IIRC, est DD-Mon-AAAA, pas Lun-JJ-AAAA que vous essayez d'utiliser.

Autres conseils

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

Vous devez fournir date à l'aide TO_DATE avec le format.

L'erreur explique:

  

"Les données d'entrée à convertir en utilisant   un modèle de format de date était incorrecte.   Les données d'entrée ne contenait pas   numéro où un certain nombre a été requis par   le modèle de format "

Ce que cela signifie est la valeur que vous passez à la colonne date_of_birth est dans le mauvais format. Par défaut, Oracle attend aux dates dans le format DD-MON-AAAA. Vous passez une date dans le format MON-JJ-AAAA.

Il y a deux - trois - bien. Façons de traiter cette

  1. Utilisez un masque de format explicite: to_date('Jan-10-1999', 'MON-DD-YYYY')
  2. le paramètre NLS_DATE_FORMAT , à la session ou même au niveau de la base de données. F ind plus et < a href = "http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#i2154767" rel = "nofollow"> ici .
  3. modifier votre instruction d'insertion pour passer la date dans le format attendu.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top