我有这个查询,当它自己运行查询时它工作正常:
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。我在这里想念什么?甲骨文有什么我不知道的怪癖吗?还是我有一些语法错误也会引发 ORA-00907?也许在 WHERE 子句的某个地方?我在甲骨文方面没有那么有经验,所以任何见解都将不胜感激。