wso2am 2.1.0 на Oracle - sqlexception отсутствует правая скобка - PullRequest
0 голосов
/ 24 ноября 2018

Использование WSO2AM-2.1.0-update12 (тег carbon-apomgt v6.2.108) нормально работает с mysql.Мы намереваемся переключить базовую базу данных на Oracle DB (насколько мне известно, 11g), выглядит просто.

При создании API apim выдает SQLException

ORA-00907: missing right parenthesis

, в котором мы проследили исключение

org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO:7652

при выполнении следующего запроса:

  SELECT 
   A.SCOPE_ID, A.NAME, A.DISPLAY_NAME,
   A.DESCRIPTION, C.SCOPE_BINDING 
   FROM  
   ((IDN_OAUTH2_SCOPE AS A  INNER JOIN  AM_API_SCOPES AS B ON A.SCOPE_ID = B.SCOPE_ID)
   INNER JOIN  IDN_OAUTH2_SCOPE_BINDING AS C ON B.SCOPE_ID = C.SCOPE_ID )
   WHERE B.API_ID = 1;

Выполнение самого запроса к базе данных APIM действительно воспроизводит исключение, поэтому код не был должным образом протестирован.Для некоторых настроек мы скорее пытаемся исправить код, если это возможно, чем переходить на более новую версию (где у нас нет уверенности, что проблема исправлена ​​или наши настройки будут работать)

Я подозреваю, что запрос не был проверен навсе и правильный запрос может выглядеть как

  SELECT 
   A.SCOPE_ID, A.NAME, A.DISPLAY_NAME,
   A.DESCRIPTION,   C.SCOPE_BINDING 
   FROM  
     IDN_OAUTH2_SCOPE  A  INNER JOIN  AM_API_SCOPES B ON A.SCOPE_ID = B.SCOPE_ID
   INNER JOIN  IDN_OAUTH2_SCOPE_BINDING  C ON B.SCOPE_ID = C.SCOPE_ID 
   WHERE B.API_ID = 1;

Я хотел бы проверить и исправить меня, если запрос синтаксически и семантически не эквивалентен

1 Ответ

0 голосов
/ 24 ноября 2018

Не могли бы вы попробовать следующее?

SELECT A.SCOPE_ID, A.NAME, A.DISPLAY_NAME, A.DESCRIPTION, C.SCOPE_BINDING FROM ((IDN_OAUTH2_SCOPE A  INNER JOIN  AM_API_SCOPES B ON A.SCOPE_ID = B.SCOPE_ID) INNER JOIN  IDN_OAUTH2_SCOPE_BINDING C ON B.SCOPE_ID = C.SCOPE_ID ) WHERE B.API_ID = ?

Вы можете найти этот исправленный запрос в https://github.com/wso2/carbon-apimgt/blob/6.x/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/constants/SQLConstants.java#L2068

...