2017-01-03 20 views
-1

次の問合せの実行中に例外を超えています。oracle問合せの実行中にエラーが発生しました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キーワードを使用して、選択結果をエイリアシングしています。下の2行にある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

あなたは外側のSELECTクエリに表示される14列を与えている:

​​

のみ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 

これですべての準備が整いました。

関連する問題