2017-01-03 11 views
-1

Ich bekomme über Ausnahme während der Ausführung der folgenden Abfrage.Fehler beim Ausführen der Oracle-Abfrage ORA-00907: fehlende rechte Klammer

SELECT CONSUMER_KEY, AUTHZ_USER, 
    ACCESS_TOKEN_TABLE.TENANT_ID, USER_DOMAIN, 
    TOKEN_SCOPE, TIME_CREATED, 
    REFRESH_TOKEN_TIME_CREATED, VALIDITY_PERIOD, 
    REFRESH_TOKEN_VALIDITY_PERIOD, USER_TYPE, 
    REFRESH_TOKEN, ACCESS_TOKEN_TABLE.TOKEN_ID, 
    GRANT_TYPE, SUBJECT_IDENTIFIER 
FROM 
    (SELECT TOKEN_ID, CONSUMER_KEY, 
    AUTHZ_USER,IDN_OAUTH2_ACCESS_TOKEN.TENANT_ID AS TENANT_ID, 
    IDN_OAUTH2_ACCESS_TOKEN.USER_DOMAIN AS USER_DOMAIN, 
    TIME_CREATED, REFRESH_TOKEN_TIME_CREATED, 
    VALIDITY_PERIOD, REFRESH_TOKEN_VALIDITY_PERIOD, 
    USER_TYPE,REFRESH_TOKEN, 
    IDN_OAUTH2_ACCESS_TOKEN.GRANT_TYPE AS GRANT_TYPE, 
    SUBJECT_IDENTIFIER 
    FROM 
    (SELECT * 
    FROM IDN_OAUTH2_ACCESS_TOKEN 
    WHERE ACCESS_TOKEN='xyz' 
    AND TOKEN_STATE ='ACTIVE' 
    ) AS IDN_OAUTH2_ACCESS_TOKEN 
    JOIN IDN_OAUTH_CONSUMER_APPS 
    ON CONSUMER_KEY_ID = ID 
) AS ACCESS_TOKEN_TABLE 
LEFT JOIN IDN_OAUTH2_ACCESS_TOKEN_SCOPE 
ON ACCESS_TOKEN_TABLE.TOKEN_ID = IDN_OAUTH2_ACCESS_TOKEN_SCOPE.TOKEN_ID; 

Schätzen Sie Ihre Hilfe, um den Fehler bei dieser Abfrage herauszufinden.

Ausnahme: ORA-00907: fehlende rechte Klammer

Antwort

4

Sie Aliasing ein ausgewähltes Ergebnis AS Schlüsselwort, das diesen Fehler gibt. Entfernen Sie einfach AS in unter zwei Zeilen und Ihre Abfrage wird gut funktionieren.

- AS IDN_OAUTH2_ACCESS_TOKEN 
- AS ACCESS_TOKEN_TABLE 
0
SELECT CONSUMER_KEY, AUTHZ_USER, ACCESS_TOKEN_TABLE.TENANT_ID, USER_DOMAIN, TOKEN_SCOPE, TIME_CREATED, REFRESH_TOKEN_TIME_CREATED, VALIDITY_PERIOD, REFRESH_TOKEN_VALIDITY_PERIOD, USER_TYPE, REFRESH_TOKEN, ACCESS_TOKEN_TABLE.TOKEN_ID, GRANT_TYPE, SUBJECT_IDENTIFIER FROM (SELECT TOKEN_ID, CONSUMER_KEY, AUTHZ_USER, IDN_OAUTH2_ACCESS_TOKEN.TENANT_ID AS TENANT_ID, IDN_OAUTH2_ACCESS_TOKEN.USER_DOMAIN AS USER_DOMAIN,TIME_CREATED,REFRESH_TOKEN_TIME_CREATED, VALIDITY_PERIOD, REFRESH_TOKEN_VALIDITY_PERIOD, USER_TYPE, REFRESH_TOKEN, IDN_OAUTH2_ACCESS_TOKEN.GRANT_TYPE AS GRANT_TYPE,SUBJECT_IDENTIFIER FROM (SELECT * FROM IDN_OAUTH2_ACCESS_TOKEN WHERE ACCESS_TOKEN='xyz' AND TOKEN_STATE='ACTIVE') AS IDN_OAUTH2_ACCESS_TOKEN JOIN IDN_OAUTH_CONSUMER_APPS as c ON IDN_OAUTH2_ACCESS_TOKEN.CONSUMER_KEY_ID = c.ID) AS ACCESS_TOKEN_TABLE LEFT JOIN IDN_OAUTH2_ACCESS_TOKEN_SCOPE ON ACCESS_TOKEN_TABLE.TOKEN_ID = IDN_OAUTH2_ACCESS_TOKEN_SCOPE.TOKEN_ID; 

Sie haben den Alias-Namen in der Tabelle angegeben, aber nicht in der on-Klausel von Join verwendet.

0

Sie haben die 14 Spalten angegeben in äußeren Auswahlabfrage angezeigt werden:

SELECT CONSUMER_KEY, 
     AUTHZ_USER, 
     ACCESS_TOKEN_TABLE.TENANT_ID, 
     USER_DOMAIN, 
     TOKEN_SCOPE, 
     TIME_CREATED, 
     REFRESH_TOKEN_TIME_CREATED, 
     VALIDITY_PERIOD, 
     REFRESH_TOKEN_VALIDITY_PERIOD, 
     USER_TYPE, 
     REFRESH_TOKEN, 
     ACCESS_TOKEN_TABLE.TOKEN_ID, 
     GRANT_TYPE, 
     SUBJECT_IDENTIFIER 

und Daten von nur 13 Spalt abrufen:

FROM (SELECT TOKEN_ID, 
      CONSUMER_KEY, 
      AUTHZ_USER, 
      IDN_OAUTH2_ACCESS_TOKEN.TENANT_ID AS TENANT_ID, 
      IDN_OAUTH2_ACCESS_TOKEN.USER_DOMAIN AS USER_DOMAIN, 
      TIME_CREATED, 
      REFRESH_TOKEN_TIME_CREATED, 
      VALIDITY_PERIOD, 
      REFRESH_TOKEN_VALIDITY_PERIOD, 
      USER_TYPE, 
      REFRESH_TOKEN, 
      IDN_OAUTH2_ACCESS_TOKEN.GRANT_TYPE AS GRANT_TYPE, 
      SUBJECT_IDENTIFIER 

und Alias ​​zu dem Abrufen von Daten (von), du hast es gegeben!

AS IDN_OAUTH2_ACCESS_TOKEN 
AS ACCESS_TOKEN_TABLE 

, dass alle Änderungen ist man bereit zu gehen!

Verwandte Themen