Hejto.pl
Motyw strony
Dodaj post

Wpis użytkownika Dalmierz_Ploza w Programowanie

Gruba ryba

w Programowanie

1piorunów

Oracle SQL

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ę

Komentarze (11)

Praktykant1piorunów

@Dalmierz_Ploza spróbuj zawęzić problem. Zrób inserta z dwiema kolumnami, z trzema itd do momentu aż wyskoczy błąd

Tytan2piorunów

@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ą 😉

Oracle Live SQLFeatured Scripts and Tutorials Introduction to SQL This tutorial provides an introduction to the Structured Query Language (SQL), learn how to create tables with primary keys, columns, constraints, ind... Tutorial SQL Macros - Creating...livesql.oracle.com
Osobistość1piorunów

@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

Gruba ryba0piorunów

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);

Fenomen0piorunów

Na szybko odpaliłem w oraclowym livesqlu i działa

Praktykant0piorunów

Może komputer się pomylił? Spróbuj ponownie.

Tytan1piorunów

spróbuj

alter session set NLS_NUMERIC_CHARACTERS = '.,';

Oracle SQL Przy próbie wstawienia danych wyrzuca mi błąd, o co może chodzić? CREATE TABLE Employee (id NUMBER - Dalmierz_Ploza - Hejto.pl (demo semantyczne)