ORA-01722 сообщение об ошибке неверного номера в SQL Developer - PullRequest
0 голосов
/ 20 апреля 2020

Это моя таблица:

--Create Person Table
CREATE TABLE Person
(
Person_ID   NUMBER(10)  PRIMARY KEY,
First_Name  NUMBER(15)  NULL,
Last_Name   VARCHAR2(15)    NULL,
Middle_Name VARCHAR2(15)    NULL,
Street_Address  VARCHAR(35) NULL,
City    VARCHAR2(10)    NULL,
State   VARCHAR2(2) NULL,
Zipcode VARCHAR2(5) NULL, 
Country CHAR(2) NOT NULL, 
Birth_Date  DATE    NOT NULL,
Gender  CHAR(1)    NOT NULL,
Phone   VARCHAR2(10)    NULL,
Email   VARCHAR2(25)    NULL,
Is_Patient  CHAR(1) NULL,
Is_Physician    CHAR(1) NULL,
Is_Employee CHAR(1)  NULL,
Is_Volunteer    CHAR(1) NULL 
);

И я пытаюсь вставить:

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12333', 'Victoria', 'Tirado', 'Amanda', '1951 Lane Drive', 'Bronx', 'NY', '10467', 'US', TO_DATE('8/4/1999',
'DD/MM/YYYY'),'F','7188751200', 'heyhey@gmail.com', 'N', 'N', 'N','Y');

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12444', 'Linda', 'Lewis', 'Dixon', '1366 Grey Lane', 'Bronx', 'NY', '10460', 'US', TO_DATE('7/17/1994',
'DD/MM/YYYY'),'F','7184561287', 'babygirl@gmail.com', 'N', 'N', 'N','Y');

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12555', 'Kristen', 'Wardell', 'Danielle', '8112 Noble Street', 'Bronx', 'NY', '10451', 'US', TO_DATE('10/6/1997',
'DD/MM/YYYY'),'F','7189451263', 'heygirl@gmail.com', 'N', 'N', 'N','Y');

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12666', 'Brittany', 'Edwards', 'Toni', '2264 Rosedale Lane', 'Bronx', 'NY', '10468', 'US', TO_DATE('4/21/1993',
'DD/MM/YYYY'),'F','7186552413', 'Itsme@gmail.com', 'N', 'N', 'N','Y');

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12777', 'Kristina', 'Goodwin', 'Sue', '1010 Beach Street', 'Bronx', 'NY', '10455', 'US', TO_DATE('5/11/1991',
'DD/MM/YYYY'),'F','7189478511', 'yougood@gmail.com', 'N', 'N', 'N','Y');

insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12666', 'Rebecca', 'Gonzalez', 'Bianca', '8124 Elder Drive', 'Bronx', 'NY', '10474', 'US', TO_DATE('2/19/1996',
'DD/MM/YYYY'),'F','7181148792', 'artist@gmail.com', 'N', 'N', 'N','Y');

Select *
From PERSON;

Но я получаю это сообщение:

Error starting at line : 36 in command -
insert into PERSON
(Person_ID, First_Name, Last_Name, Middle_Name, Street_Address,
    City, State, Zipcode, Country, Birth_Date, Gender, Phone,
    Email, Is_Patient, Is_Physician, Is_Employee, Is_Volunteer)
values ('12666', 'Rebecca', 'Gonzalez', 'Bianca', '8124 Elder Drive', 'Bronx', 'NY', '10474', 'US', TO_DATE('2/19/1996',
'DD/MM/YYYY'),'F','7181148792', 'artist@gmail.com', 'N', 'N', 'N','Y')

Error report -
ORA-01722: invalid number

Есть это потому, что я случайно сделал имя как Number(10), а не VarChar(10)?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Alter table person modify (first_name varchar2(15));

Затем запустите вставку quety

0 голосов
/ 20 апреля 2020

Помимо типа данных, который вы уже изменили в таблице, вам также необходимо позаботиться о DATE.

, который вы использовали: TO_DATE('2/19/1996','DD/MM/YYYY'). Будет выдано сообщение об ошибке: ORA-01843: not a valid month

Должно быть: TO_DATE('02/19/1996','DD/MM/YYYY')

...