Przy próbie wstawienia danych wyrzuca mi błąd, o co może chodzić?
CREATE TABLE Employee
(id NUMBER GENERATED ALWAYS AS IDENTITY NOT NULL PRIMARY KEY,
FirstName VARCHAR2(128) NOT NULL,
SecondName VARCHAR2(128),
LastName VARCHAR2(128) NOT NULL,
Gender VARCHAR2(1),
BirthDate DATE NOT NULL,
Salary FLOAT(4) NOT NULL,
DepartmnentId NUMBER NOT NULL,
HireDate DATE NOT NULL,
RelieveDate DATE,
Active NUMBER(1));
INSERT INTO Employee(FirstName, SecondName, LastName, Gender, BirthDate, Salary, DepartmnentId, HireDate, RelieveDate, Active)
VALUES ('Mary',NULL,'Smith','W',TO_DATE('18-DEC-1985'),2000.00,1,TO_DATE('06-MAY-2011'),NULL,1);
Error starting at line : 14 in command -
INSERT INTO Employee(FirstName, SecondName, LastName, Gender, BirthDate, Salary, DepartmnentId, HireDate, RelieveDate, Active)
VALUES ('Mary',NULL,'Smith','W',TO_DATE('18-DEC-1985'),'2000.00',1,TO_DATE('06-MAY-2011'),NULL,1)
Error report -
ORA-01858: tam, gdzie spodziewano się cyfry, znaleziono literę
spróbuj
alter session set NLS_NUMERIC_CHARACTERS = '.,';
A może 2000,00 zamiast 2000.00?
Może komputer się pomylił? Spróbuj ponownie.
@Robert_Prawandowski @WolandWspanialy Możliwe, u mnie powyższe komendy działają bez zarzutu.
@Dalmierz_Ploza Jakie masz ustawione locale? Jaki OS?
Edit:
Dziwne, u mnie działa ¯_(ツ)_/¯
Na szybko odpaliłem w oraclowym livesqlu i działa
@mejwen @warzone nosz kurwa xD o co kaman, może coś z sqldeveloper..
@WolandWspanialy już próbowałem, mam kropeczkę jako znaczek floata
@warzone @mejwen @WolandWspanialy @Robert_Prawandowski @HrabiaKoniecpolski
Dobra, nie chce przyjąć do wiadomości swojego rzekomo standardowego formatu daty..
Miesiące mają być cyferkami pomimo tego, że wszędzie piszą, że powinny być literkowe.
INSERT INTO Employee(FirstName, SecondName, LastName, Gender, BirthDate, Salary, DepartmnentId, HireDate, RelieveDate, Active)
VALUES ('Mary',NULL,'Smith','W','1985-12-18',2000.00,1,'2011-05-06',NULL,1);
@Dalmierz_Ploza panie, a w jakim języku masz sesję i w jakim formacie chcesz wstawiać daty? Bo jeśli nie ma matcha, to będziesz napierdalał głową w mur jak ja kiedyś xDD
@Dalmierz_Ploza
Moja rada: Nigdy ale to przenigdy nie wpisuj daty bez maski. Narobisz sobie tym tylko kłopotów bo domyślny format różni się w zależności od klienta sql i jego ustawień regionalnych a czasami wcale nie rzuci błędem tylko wpisze jakieś głupoty do bazy
Zamiast:
'2011-05-06' lub TO_DATE('18-DEC-1985')
zrób:
to_date('18-DEC-1985','dd-mon-yyyy')
P.S. Data miała być moim drugim strzałem bo sprawdziłem na https://livesql.oracle.com że komendę masz poprawną
@Dalmierz_Ploza spróbuj zawęzić problem. Zrób inserta z dwiema kolumnami, z trzema itd do momentu aż wyskoczy błąd
Zaloguj się aby komentować