Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Опять про oracle и delphi


Автор: Sax 15.4.2007, 12:58
Я снова про ошибку ORA-12154: TNS:невозможно разрешить имя службы.
В справочнике http://www.firststeps.ru/sql/oracle/r.php?1 на шаге восьмом написано как создавать пользователя и прилагаются bat и dat файлы.
Пользователь создаётся нормально.
Далее запускаю через командную строку miller.bat и сообщение - 
IMP-00058: ORACLE выдал ошибку12154
ORA-12154: TNS:невозможно разрешить имя службы
IMP-00000: Импорт данных завершил неудачно 

Т.е. delphi не использовал, а ошибка та же.
Вот три файла. Может там что не так. Или ещё где чего. Подскажите, очень нужно.
Код

# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 12-4666b460d102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = [URL=http://HRService)]http://HRService)[/URL]
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

PROBASAX =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 12-4666b460d102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = probasax.com)
    )
  )

Код

# LISTENER.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 12-4666b460d102)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\ora92)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = probasax.com)
      (ORACLE_HOME = D:\oracle\ora92)
      (SID_NAME = probasax)
    )
  )

Код

# SQLNET.ORA Network Configuration File: D:\oracle\ora92\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

Автор: LSD 15.4.2007, 13:08
Цитата(Sax @  15.4.2007,  12:58 Найти цитируемый пост)
PROBASAX =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 12-4666b460d102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = probasax.com)
    )
  )

Почему такое странное имя хоста?

Автор: Sax 15.4.2007, 13:14
Это такое полное имя домашнего компьютера

Автор: LSD 15.4.2007, 13:18
Замени (SERVICE_NAME = probasax.com) на (SERVICE_NAME = probasax).

Автор: Sax 15.4.2007, 13:27
Изменил, перезапустил три службы через панель управления\администрирование.
Запускаю exe файл и та же ошибка.
Мне говорили что-то про предоставление прав пользователю на создание сессии.
Через SQL*Plus делал "grant connect to usersax "из-под пользователя system.
Но тоже не помогло.
В Enteprise Manager Console в дереве users/usersax на вкладке role есть строка connect и два синих checkbox.
Это то или нет?

Автор: LSD 15.4.2007, 14:09
Давай отделим мух от котлет.

ORA-12154 - выдается если у тебя неверно настроен Net8 и выдаваться она будет для любого пользователя. Если у пользователя нет прав на соединение с сервером ошибка будет другая.

Так можно соединиться с базой (хотябы из под system-а) или нельзя?

Автор: Sax 28.4.2007, 13:51
При просмотре log файлов:

в файле D:\oracle\ora92\network\log\nmiconf.log много ошибок:
"
DBSNMP for 32-bit Windows: release 9.2.0.0.0 - Production on 07-APR-07 14:12:57
Discovering services on 12-4666b460d102 configured on host addresses {12-4666b460d102 127.0.0.1}
Warning : Error while sourcing third party discovery file emddiscover.tcl : unable to get value "em_loc" from key "HKEY_LOCAL_MACHINE\Software\Oracle": Не удается найти указанный файл.
"

в файле D:\oracle\ora92\network\log\dbsnmp.log много таких ошибок:
"
DBSNMP for 32-bit Windows: Version 9.2.0.1.0 - Production on 15-АПР-2007 17:11:40

Copyright © 2002 Oracle Corporation.  All rights reserved.

файлом системных параметров является D:\oracle\ora92\network\admin\snmp_ro.ora
сообщения протокола записаны в D:\oracle\ora92\network\log\dbsnmp.log
информация протокола записана в D:\oracle\ora92\network\trace\dbsnmp_2396.trc
текущим уровнем протокола является 0

NMS-00001: Предупреждение: dbsnmp не может соединиться с мастер-агентом SNMP
"

Производились неоднократные установки различных версий (Enterprise Edition, Standard Edition, Perosonal Edition), что не приводило к корректной работе Delphi и Oracle.

При попытке подсоединения к таблице через ADOTable c помощью драйвера Oracle Provider for OLE DB при компилировании программы (Run(F9)) выдавалась ошибка "ORA-12154 TNS:невозможно разрешить имя службы".
При попытке подсоединения к таблице через ADOTable c помощью драйвера Microsoft OLE DB Provider for Oracle при компилировании программы (Run(F9)) выдавалась ошибка "ORA-06413 соедиение не уставлено" (номер такой, а текст ошибки точно не помню).
При попытке подсоединения к таблице через Oracle Data Access Components 5.80.0.35 Net Trial for Delphi 7 с помощью компонент OraSession, OraTable или OraQuery выдавалась ошибка "ORA-06413 соедиение не уставлено".

Была установлена бесплатно распространяемая СУБД "Oracle Database 10g Express Edition" - 206 Мегабайт.
Ошибки аналогичны тем, что и при работе с версией Oracle 9i (9.2.0.1.0).

Произведена переустановка с форматированием Win XP SP2 rus, Oracle 9i (9.2.0.1.0) Enterprise Edition и Borland Delphi 7 Enterprise.
Все настройки стандартные.
Соединение Delphi и Oracle с помощью ADOTable и драйвера Oracle Provider for OLE DB выдает Delphi ошибку "Invalid variant operation".
Соединение Delphi и Oracle с помощью ADOTable и драйвера Microsoft OLE DB Provider for Oracle проходит успешно.

Добавлено через 23 секунды
Отличия первого варианта от нового:

- отсутствует DrWeb 4.33.2.12251

- отсутствуют дополнения
WindowsXP-KB884020-x86-rus
WindowsXP-KB911280-v2-x86-RUS
WindowsXP-KB914388-x86-RUS
WindowsXP-KB914389-x86-RUS
WindowsXP-KB917159-x86-RUS
WindowsXP-KB917422-x86-RUS
WindowsXP-KB917953-x86-RUS
WindowsXP-KB920214-x86-RUS
WindowsXP-KB920670-x86-RUS
WindowsXP-KB920683-x86-RUS
WindowsXP-KB921398-x86-RUS
WindowsXP-KB921883-x86-RUS
WindowsXP-KB922616-x86-RUS

- при уставноке использовалась классическая тема формления Windows

- установка прошла не за 60 минут как ранее, а за 20.

Автор: Sax 12.5.2007, 14:19
Дома используются:
- Win XP SP2 rus;
- Oracle 9i (9.2.0.1.0) Enterprise Edition;
- Borland Delphi 7 Enterprise;
- метод доступа - ADO (ADOTable).

В корневом каталоге системного диска созданы папки "Новая папка", "Новая папка (2)", "Новая папка (3)".
Из первой приложение запускается нормально и нормально работает. Из двух других уже при запуске пишет "ORA-06413: Соединение не открыто" с драйвером Microsoft OLE DB Provider for Oracle, а с драйвером Oracle Provider for OLE DB выдаёт ошибку "ORA-12154 TNS:невозможно разрешить имя службы".
Попробовал создать папку со случайным именем "poiuyt" - рабоает, а с имененм "poiuyt (10)" - ошибки.
Причём с именами "Новая папка 2", "Новая папка 3" всё работает.
То есть не понимает закрывающую скобку!!!

Причина непонятна, но ФАКТ!!!

На это потребовалось две недели времени, более 7 раз переставлял Oracle, 1 переустановка Win и куча нервов!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)