So I'm trying to insert 3 rows into 2 different tables by doing this:
INSERT INTO GAMES.ATHLETE (ATHLETE_NO, ATHLETE_NAME, ATHLETE_BIRTHDATE, ATHLETE_BIRTHPLACE, ATHLETE_BORN_COUNTRY, ATHLETE_GENDER, ATHLETE_HEIGHT, ATHLETE_WEIGHT, ATHLETE__TEAM_COUNTRY)
VALUES ('12345', 'Saif Haseeb', '08-NOV-1995', 'Clayton', 'AUS', 'M', '176', '75', 'AUS'), ('12323', 'Rajandeep', '01-FEB-1995', 'Melbourne', 'AUS', 'M', '180', '77', 'AUS'), ('2818', 'Jen Selter', '18- APR-1993', 'Paris', 'FRA', 'F', '169', '63', 'FRA')
INSERT INTO GAMES.COMPETES (ATHLETE_NO, DISCIPLINE_CODE, SG_GAMENO)
VALUES ('12345', 'FB', '30'), ('12323', 'FB', '30'), ('2818', 'TT', '29')
INSERT INTO GAMES.VENUE (VENUE_NO, VENUE_NAME, VENUE_LOCATION, VENUE_USEDFROM, VENUE_USEDTO, VENUE_SEATINGCAPACITY, VENUE_STRUCTURE, VENUE_USE)
VALUES ('SY', 'SYDNEYSTADIUM', 'SYDNEY', '14-AUG-2014', '19-AUG-2014', '98172', 'A', 'Y');
However I keep getting the error in the title. Can anyone help me out here please?
4 Answers 4
Oracle doesn't let you type insert into ... values (...),(...) like PostgreSQL does you need to split it into several inserts:
INSERT INTO GAMES.ATHLETE (ATHLETE_NO, ATHLETE_NAME, ATHLETE_BIRTHDATE, ATHLETE_BIRTHPLACE, ATHLETE_BORN_COUNTRY, ATHLETE_GENDER, ATHLETE_HEIGHT, ATHLETE_WEIGHT, ATHLETE__TEAM_COUNTRY)
VALUES ('12345', 'Saif Haseeb', '08-NOV-1995', 'Clayton', 'AUS', 'M', '176', '75', 'AUS');
INSERT INTO GAMES.ATHLETE (ATHLETE_NO, ATHLETE_NAME, ATHLETE_BIRTHDATE, ATHLETE_BIRTHPLACE, ATHLETE_BORN_COUNTRY, ATHLETE_GENDER, ATHLETE_HEIGHT, ATHLETE_WEIGHT, ATHLETE__TEAM_COUNTRY)
VALUES ('12323', 'Rajandeep', '01-FEB-1995', 'Melbourne', 'AUS', 'M', '180', '77', 'AUS');
INSERT INTO GAMES.ATHLETE (ATHLETE_NO, ATHLETE_NAME, ATHLETE_BIRTHDATE, ATHLETE_BIRTHPLACE, ATHLETE_BORN_COUNTRY, ATHLETE_GENDER, ATHLETE_HEIGHT, ATHLETE_WEIGHT, ATHLETE__TEAM_COUNTRY)
VALUES ('2818', 'Jen Selter', '18- APR-1993', 'Paris', 'FRA', 'F', '169', '63', 'FRA')
INSERT INTO GAMES.COMPETES (ATHLETE_NO, DISCIPLINE_CODE, SG_GAMENO)
VALUES ('12345', 'FB', '30');
INSERT INTO GAMES.COMPETES (ATHLETE_NO, DISCIPLINE_CODE, SG_GAMENO)
VALUES ('12323', 'FB', '30'), ('2818', 'TT', '29');
INSERT INTO GAMES.VENUE (VENUE_NO, VENUE_NAME, VENUE_LOCATION, VENUE_USEDFROM, VENUE_USEDTO, VENUE_SEATINGCAPACITY, VENUE_STRUCTURE, VENUE_USE)
VALUES ('SY', 'SYDNEYSTADIUM', 'SYDNEY', '14-AUG-2014', '19-AUG-2014', '98172', 'A', 'Y');
answered Sep 15, 2014 at 10:09
neshkeev
6,4863 gold badges32 silver badges49 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
These are three Statements, but you forgot to end each with a semicolon.
answered Sep 15, 2014 at 10:06
Thorsten Kettner
96.7k8 gold badges56 silver badges82 bronze badges
Comments
Syntax for inserting multiple rows in Oracle
INSERT ALL
INTO table1 (column1, column2, column3) VALUES ('val1', 'val2', 'val3')
INTO table1 (column1, column2, column3) VALUES ('val1', 'val2', 'val3')
INTO table1 (column1, column2, column3) VALUES ('val1', 'val2', 'val3')
SELECT * FROM dual;
Taryn
249k57 gold badges375 silver badges409 bronze badges
Comments
Place Semicolon at the end of each statement.
INSERT INTO GAMES.ATHLETE (ATHLETE_NO, ATHLETE_NAME, ATHLETE_BIRTHDATE, ATHLETE_BIRTHPLACE, ATHLETE_BORN_COUNTRY, ATHLETE_GENDER, ATHLETE_HEIGHT, ATHLETE_WEIGHT, ATHLETE__TEAM_COUNTRY)
VALUES ('12345', 'Saif Haseeb', '08-NOV-1995', 'Clayton', 'AUS', 'M', '176', '75', 'AUS'), ('12323', 'Rajandeep', '01-FEB-1995', 'Melbourne', 'AUS', 'M', '180', '77', 'AUS'), ('2818', 'Jen Selter', '18- APR-1993', 'Paris', 'FRA', 'F', '169', '63', 'FRA');
INSERT INTO GAMES.COMPETES (ATHLETE_NO, DISCIPLINE_CODE, SG_GAMENO)
VALUES ('12345', 'FB', '30'), ('12323', 'FB', '30'), ('2818', 'TT', '29');
INSERT INTO GAMES.VENUE (VENUE_NO, VENUE_NAME, VENUE_LOCATION, VENUE_USEDFROM, VENUE_USEDTO, VENUE_SEATINGCAPACITY, VENUE_STRUCTURE, VENUE_USE)
VALUES ('SY', 'SYDNEYSTADIUM', 'SYDNEY', '14-AUG-2014', '19-AUG-2014', '98172', 'A', 'Y');
Taryn
249k57 gold badges375 silver badges409 bronze badges
answered Sep 15, 2014 at 10:29
Abhi Andhariya
5606 silver badges15 bronze badges
Comments
lang-sql
;to terminate each statmeent.