Pregunta

hy

tabla:

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

inserción equivocada:

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

¿equivocado?

código de error:

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.
¿Fue útil?

Solución

  

* Causa: Los datos de entrada para ser convertidos mediante un modelo de formato de fecha   fue              incorrecto. Los datos de entrada no contiene un número donde una   número fue              requerido por el modelo de formato.

La cadena periodo que se está utilizando no coincide con lo que está a la espera de Oracle. El formato por defecto, IIRC, es DD-MES-AAAA, no Mon-DD-AAAA mientras está tratando de usar.

Otros consejos

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

Debe suministrar fecha utilizando TO_DATE con el formato correcto.

explica el error:

  

"Los datos de entrada que se convierte usando   un modelo de formato de fecha es incorrecta.   Los datos de entrada no contenía una   número en el que se requiere un número de   el modelo de formato "

Lo que esto significa es el valor que está de paso a la columna fecha_de_nacimiento está en un formato incorrecto. Por defecto Oracle espera fechas para estar en el formato DD-MON-YYYY. Está pasando una fecha en el formato MON-DD-AAAA.

Hay dos - tres - así. Maneras de tratar con este

  1. Usar una máscara de formato explícito: to_date('Jan-10-1999', 'MON-DD-YYYY')
  2. cambio el parámetro NLS_DATE_FORMAT , en la sesión o el nivel de base de datos, incluso. F ind más información aquí y < a href = "http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#i2154767" rel = "nofollow"> aquí .
  3. cambiar la instrucción de inserción de pasar la fecha en el formato esperado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top