Это меня поставило в тупик, поэтому я подумал, что увижу, столкнулся ли кто-нибудь еще с этой проблемой и / или узнает об обходном пути.
У меня есть следующее SELECT
утверждение:
SELECT * FROM TPM_VIEWSEARCH_EXPORT VS WHERE (PROJECTTYPEID IN (1))
Это прекрасно работает, хотя это довольно медленный запрос, который возвращает около 3000 строк.Тем не менее, я хочу заказать результаты.Поэтому я пытаюсь:
SELECT * FROM TPM_VIEWSEARCH_EXPORT VS WHERE (PROJECTTYPEID IN (1)) ORDER BY PROJECTID, VERSIONID
Когда я делаю это, запрос выполняется около 25 секунд, а затем возвращает:
ORA-00600: внутренний код ошибки, аргументы: [kokegPinLob1], [], [], [], [], [], [], [], [], [], [], []
Я также могу переместить ORDER BY
предложение в само определение представления, и получить ту же ошибку.Раздражает то, что это репродукция только на нашем производственном сервере (который работает в Linux), а не на моем сервере разработки, который работает локально в Windows.Тем не менее, он воспроизводится 100% времени.
Определение VIEW может иметь или не иметь значения, но в любом случае оно здесь:
CREATE VIEW TPM_VIEWSEARCH_EXPORT AS
SELECT
V.PROJECTID, V.VERSIONID, V.NAME, V.STAGEID, V.REQUESTTYPE, V.PRIORITY, V.HEALTH, V.TRAININGDELIVERYSTART, V.TRAININGDELIVERYEND, V.MEASUREMENTINFO, V.DESCRIPTION, V.BUSINESSSPONSORLEVELINVOLVE,
P.INITIATIVEID, P.LEADERSHIPONLY, P.BUSINESSLAUNCHDATE, P.EXPECTEDBUSINESSRESULTS, P.PROJECTTYPEID,
T.SHORTNAME as ProjectType,
I.NAME as InitiativeName,
C.NAME as TrainingCategory,
S.NAME as StageName,
PTO.FIRSTNAME as PTOFirst, PTO.LASTNAME as PTOLast,
STO.FIRSTNAME as STOFirst, STO.LASTNAME as STOLast,
LTS.FIRSTNAME as LTSFirst, LTS.LASTNAME as LTSLast,
R.FIRSTNAME as ReqFirst, R.LASTNAME as ReqLast,
BS.FIRSTNAME as BSFirst, BS.LASTNAME as BSLast,
(select WM_CONCAT(FIRSTNAME || ' ' || LASTNAME) from TPM_PROJECTVERSIONSME inner join TPM_USER USING (USERID) where PROJECTID=V.PROJECTID and VERSIONID=V.VERSIONID) as SME,
(select WM_CONCAT(NAME) from TPM_PROJECTAREAS inner join TPM_AREAS USING (AREAID) where PROJECTID=V.PROJECTID) as Areas,
(select WM_CONCAT(NAME) from TPM_PROJECTWORKGROUPS inner join TPM_WORKGROUPS USING (WORKGROUPID) where PROJECTID=V.PROJECTID) as Workgroups,
(select WM_CONCAT(NAME) from TPM_PROJECTVERSIONSYSTEMS inner join TPM_SYSTEMS USING (SYSTEMID) where PROJECTID=V.PROJECTID and VERSIONID=V.VERSIONID) as Systems,
(select WM_CONCAT(NAME) from TPM_PROJECTVERSIONTEAMS inner join TPM_DEVELOPMENTTEAMS USING (TEAMID) where PROJECTID=V.PROJECTID and VERSIONID=V.VERSIONID) as SupportingDevTeams
FROM TPM_PROJECTVERSION V
INNER JOIN TPM_PROJECT P ON P.PROJECTID = V.PROJECTID
INNER JOIN TPM_PROJECTTYPES T ON T.PROJECTTYPEID = P.PROJECTTYPEID
INNER JOIN TPM_INITIATIVES I ON I.INITIATIVEID = P.INITIATIVEID
INNER JOIN TPM_PROJECTSTAGE S ON S.STAGEID = V.STAGEID
INNER JOIN TPM_PROJECTCATEGORIES PC ON (PC.PROJECTID=V.PROJECTID)
INNER JOIN TPM_TRAININGCATEGORIES C ON (C.CATEGORYID=PC.CATEGORYID)
INNER JOIN TPM_USER R ON (V.REQUESTOR=R.USERID)
INNER JOIN TPM_USER BS ON (V.BUSINESSSPONSOR=BS.USERID)
LEFT JOIN TPM_USER PTO ON PTO.USERID = V.PRIMARYTRAININGOWNER
LEFT JOIN TPM_USER STO ON (V.SECONDARYTRAININGOWNER=STO.USERID)
LEFT JOIN TPM_USER LTS ON (V.LEADTRAININGSPONSOR=LTS.USERID)
Администраторы баз данных, которые запускают производственный сервер, утверждают, что этоявляется известной ошибкой Oracle, однако патч недоступен.Действительно ли это ошибка Oracle, или эта проблема связана с определением представления или данными в базе данных.
ОБНОВЛЕНИЕ:
Версия Oracle (Devмашина, которая работает):
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Beta
PL/SQL Release 11.2.0.2.0 - Beta
CORE 11.2.0.2.0 Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Beta
NLSRTL Version 11.2.0.2.0 - Production
версия Oracle (производство):
TNS for Solaris: Version 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
NLSRTL Version 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production