#java #sql #oracle #jdbc #ora-00907
#java #sql #Oracle #jdbc #ora-00907
Вопрос:
У меня есть этот запрос, и он отлично работает при выполнении запроса сам по себе:
SELECT
c.factDate,
c.agentOsLoginId,
c.person,
c.systemName,
c.siteId,
c.callId,
c.callType,
c.agentId,
c.GMTStartTime,
c.GMTStopTime,
c.duration,
c.evalInitiatedTime,
TO_DATE (to_char (from_tz(cast(c.GMTStartTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS') EasternStartTime,
TO_DATE (to_char (from_tz(cast(c.GMTStopTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS') EasternStopTime,
TRUNC(TO_DATE (to_char (from_tz(cast(c.GMTStartTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS')) EasternfactDate
from m_NPInteraction c
where c.factDate >= trunc( add_months ( sysdate, -3 ), 'MM' )
Но когда я добавляю этот запрос в свой код преобразования данных, он выдает ORA-00907.
Вот как это выглядит, когда я помещаю это в код преобразования:
$class=com.merced.dice.translate.conduits.jdbc.MetaBeanTypeSource
$scope=global
configuration=(creator:/com/merced/dice/Configuration)
metaBeanType=(creator:/com/merced/apps/perform/recordtypes/NPInteractionEvalChunk)
queryBeanFormat="
SELECT --n
c.factDate, --n
c.agentOsLoginId, --n
c.person, --n
c.systemName, --n
c.siteId, --n
c.callId, --n
c.callType, --n
c.agentId, --n
c.GMTStartTime, --n
c.GMTStopTime, --n
c.duration, --n
c.evalInitiatedTime, --n
TO_DATE (to_char (from_tz(cast(c.GMTStartTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS') EasternStartTime, --n
TO_DATE (to_char (from_tz(cast(c.GMTStopTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS') EasternStopTime, --n
TRUNC(TO_DATE (to_char (from_tz(cast(c.GMTStartTime as timestamp), 'GMT') at time zone 'US/Eastern', 'yyyy-mm-dd HH24:MI:SS'), 'yyyy-mm-dd HH24:MI:SS')) EasternfactDate --n
from m_NPInteraction c --n
where c.factDate >= trunc( add_months ( sysdate, -3 ), 'MM' )
"
Когда он выполнил, он выдает ORA-00907. Чего мне здесь не хватает? Есть ли особенность Oracle, о которой я не знаю? Или у меня есть какая-то синтаксическая ошибка, которая также выдает ORA-00907? Может быть, где-то в предложении WHERE? Я не настолько опытен в Oracle, поэтому буду признателен за любую информацию.
Комментарии:
1. Можете ли вы добавить номер строки в сообщение об ошибке? Было бы очень полезно узнать, с чего начать поиск.
2. Приложение, которое я использую, не предоставляет номер строки.
3. java.sql.SQLSyntaxErrorException: ORA-00907: отсутствует правая скобка rootCause=SQLException #1: Код ошибки: 907 sqlState: 42000 сообщение: ORA-00907: отсутствует правая скобка java.sql.SQLSyntaxErrorException: ORA-00907: отсутствует правая скобка
4. это действительно странно, в нем отсутствует закрывающая скобка, но я не вижу там отсутствующей правой скобки. Мне нужно будет создать пример таблицы и протестировать ваш запрос
5. Это было оно !!. Необходимо удвоить одинарные кавычки.