Попытка соединиться внутренне с Oracle, получение неактивного экземпляра?

Во-первых, напишите запрос, используя правильный, явный, стандартный стандартный синтаксис join:

select count(*) over () AS tot_count,
       PG.DESCR as partner, 
       THAF.APPDATA 
from transhist th join 
     partnergrpkey pgk 
     on TH.TRNSLTPARTNERKEY = PGK.DOCHISTPARTNERKEY join
     partnergroup pg
     on PG.ID = PGK.PARTNERGROUPID join
     trans_app thaf
     on THAF.TRANSHISTID = th.id
where TH.CreateDt >= to_date('?startdate', 'yyyymmddhh24mi') and
      TH.CreateDt <= to_date('?enddate', 'yyyymmddhh24mi')+1/1440 and
      TH.TRANSSET = '820' and
      THAF.COLUMNID = 74 and
      THAF.APPDATA LIKE '%|?acctNo|%' and
      pg.ID IN (?tpValues) 
order by TH.ID;

Для этого запроса я ожидаю, что помогут следующие индексы:

  • transhist(TRANSSET, CreateDt, TRNSLTPARTNERKEY, id)
  • partnergrpkey(DOCHISTPARTNERKEY, PARTNERGROUPID)
  • partnergroup(id)
  • trans_app(TRANSHISTID, COLUMNID, APPDATA)

Они похожи на индексы, которые у вас есть. Возможно, вы захотите проверить план выполнения, чтобы увидеть, действительно ли используются индексы.

12
задан tshepang 4 February 2014 в 00:33
поделиться

5 ответов

удостоверьтесь, что у Вас есть своя установка ORACLE_HOME точно то же как тогда, когда сервер был запущен, я видел эту проблему с оракулом 9.2.0.5.0 на solaris,

ORACLE_HOME=/opt/oracle
ORACLE_HOME=/opt/oracle/

две разных вещи и приведут к проблемам, соединяющимся локально.

12
ответ дан 2 December 2019 в 05:42
поделиться

это означает, что экземпляр базы данных не смонтирован, ни не открыт. Выполните команду запуска и посмотрите, появляются ли какие-либо ошибки.

5
ответ дан 2 December 2019 в 05:42
поделиться

База данных не может быть неактивной и используемой Вашим приложением одновременно. Кажется, что sqlplus сессия должна быть подключена к другому экземпляру, чем приложение. Попытайтесь указать идентификатор подключения в операторе подключения следующим образом:

sqlplus "/@ConnectIdentifier as sysdba"
3
ответ дан 2 December 2019 в 05:42
поделиться

попробуйте от консоли машины

export ORACLE_SID=your sid here
sqlplus /nolog
startup

Я знаю на окнах существует команда для создания сервиса для запуска экземпляра для Вас, oradmin - новый - sid %ORACLE_SID %-intpwd %oracle_pwd %-startmode A

2
ответ дан 2 December 2019 в 05:42
поделиться

Случай является значительным на *, отклоняют системы, поэтому удостоверьтесь, что Ваш ORACLE_SID точно соответствует имени экземпляра. В этом случае ORA003 НЕ является тем же как ora003.

1
ответ дан 2 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: