J'essaie d'exécuter cette requête dans Oracle SQL Developer:
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest AS G
JOIN Stay AS S ON G.Guest_ID = S.Guest_ID
WHERE G.City = 'Miami' AND S.Room = '222';
Cependant, j'obtiens l'erreur suivante:
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Error at Line: 2 Column: 12
Je ne vois aucun problème à la ligne 2 et l'erreur n'est pas très descriptive. Cela semble être quelque chose à voir avec le mot clé as
. Si je l'enlève, cela fonctionne bien. Cependant, je veux que mes requêtes soient très verbeuses. Par conséquent, je dois trouver un moyen de résoudre le problème, sans supprimer le mot clé as
.
Voici la structure des tables impliquées:
CREATE TABLE GUEST
(
GUEST_ID NUMBER NOT NULL,
LAST_NAME VARCHAR2(50 BYTE),
FIRST_NAME VARCHAR2(50 BYTE),
CITY VARCHAR2(50 BYTE),
LOYALTY_NUMBER VARCHAR2(10 BYTE)
);
CREATE TABLE STAY
(
STAY_ID NUMBER NOT NULL,
GUEST_ID NUMBER NOT NULL,
HOTEL_ID NUMBER NOT NULL,
START_DATE DATE,
NUMBER_DAYS NUMBER,
ROOM VARCHAR2(10 BYTE)
);
Merci d'avance pour toute aide.
Vous pouvez utiliser AS
pour la création d'alias de table sur de nombreux serveurs SQL (au moins MsSQL, MySQL, PostgreSQL), mais il est toujours facultatif et illégal sur Oracle.
Donc, supprimez la AS
:
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G
Omettez la AS
pour l'alias de table dans Oracle.
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G
JOIN Stay S ON G.Guest_ID = S.Guest_ID
WHERE G.City = 'Miami' AND S.Room = '222';
Cela vous donnera la sortie sans erreur.