Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Oracle] błąd przy dodawaniu wielu rekordów
Forum PHP.pl > Forum > Bazy danych > Oracle
czychacz
chcę wywołać kwerendę:
  1. INSERT INTO osvc_pracownicy (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'), (prac_id_inc.NEXTVAL, 'Jan', 'Nowak')

ale przy wykonaniu dostaję błąd:
Cytat
ORA-00933: SQL command not properly ended

przy pojedynczym dodawaniu wszystko jest ok:
  1. INSERT INTO osvc_pracownicy (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz')


co jest problemem?
woj_tas
A nie tak:

  1. INSERT ALL
  2. INTO <table_name> VALUES <column_name_list)
  3. INTO <table_name> VALUES <column_name_list)
czychacz
zapytanie:
  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')

daje błąd:
Cytat
ORA-00928: missing SELECT keyword
woj_tas
Sprawdź tu
mkozak
Cytat(czychacz @ 6.07.2010, 12:29:52 ) *
zapytanie:
  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')

daje błąd:


Tak, bo składnia wymaga, żeby na końcu był SELECT, więc

  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')
  5. SELECT true FROM DUAL;
czychacz
Cytat(mkozak @ 7.07.2010, 13:54:06 ) *
Tak, bo składnia wymaga, żeby na końcu był SELECT, więc

  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')
  5. SELECT true FROM DUAL;

to zapytanie nie działa. wywołuje:
Cytat
ORA-00904: "TRUE": invalid identifier

próbowałem:
  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')
  5. SELECT prac_id FROM OSVC_PRACOWNICY

błędów nie było, ale nic nie dodało do tabeli
za to zapytanie:
  1. INSERT ALL
  2. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Jan', 'Kowalski'),
  3. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Grzegorz', 'Brzęczyszczykiewicz'),
  4. INTO OSVC_PRACOWNICY (prac_id, imie, nazwisko) VALUES (prac_id_inc.NEXTVAL, 'Karol', 'Nowak')
  5. SELECT * FROM DUAL

zwraca błąd:
Cytat
ORA-00001: unique constraint (OSVC.SYS_C004181) violated
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.