2017-01-03 9 views
-1

Я получаю исключение при выполнении следующего запроса.Ошибка при выполнении запроса оракула ORA-00907: отсутствует правая скобка

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; 

Цените свою помощь, чтобы выяснить ошибку в этом вопросе.

Исключение: ORA-00907: отсутствует правая скобка

ответ

4

Вы альясинг отборный результата, используя ключевое слово AS, который дает эту ошибку. Просто удалите AS в двух строках, и ваш запрос будет работать нормально.

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

Вы дали имя псевдонима для таблицы, но не используется в предложении на состыковки.

0

Вы дали 14 колонн, которые будут отображаться во внешнем запросе выборки:

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 

и извлечения данных из всего 13 столбцов:

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 

и псевдонимов для считывания и записи данных (от), вы дали об этом!

AS IDN_OAUTH2_ACCESS_TOKEN 
AS ACCESS_TOKEN_TABLE 

Это все внесенные изменения, которые вы готовы к работе!