Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Как пользоваться SQL*Plus ?


Автор: neutrino 10.12.2004, 19:48
Приветствую!

В общем, я ничего в этом АРАКУЛе не понимаю и в глаза его не видел, но судьба сложилась так, что необходимо освоить максимум за минимум времени (3 дня). Пока я приобрел некоторую литературу и скачал вот этот пакет Oracle Developer Suite 10g. Мне необходимо научиться работать с SQL*Plus. Но когда я его загружаю он просит у меня имя пользователя, пароль и какую-то строку связи. Как я понял имя надо вводить SCOTT, пароль TIGER. На что он ругается:

Цитата
ERROR:
ORA-12560: TNS: ошибка адаптера протокола


Что посоветуете делать?

Автор: igon 10.12.2004, 20:57
В строке связи тебе надо указать алиас твоей базы. Его можно посмотреть в файле tnsnames.ora

У меня этот файл находится по адресу (моя база называется bank2)
D:\oracle\bank2\network\ADMIN\tnsnames.ora

В содержимом, помимо прочего, имеется

BANK2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = igon)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = bank2)
)
)

Вот BANK2 я и указываю в строке связи (в тех редчайших случаях, когда работаю с SQL*Plus smile )

Если ты назвал свою базу при инсталляции, скажем, neutrino, скорее всего, тебе neutrino и надо будет указать. Главное, не оставлять это поле пустым smile

Кстати, так ли уж обязательно осваивать SQL*Plus? Есть ну очень хорошая программа PL/SQL Developer и она для Oracle10 уже вроде встроенная. Соотносится с SQL*Plus как Windows с командной строкой DOS smile

Автор: Desdichado 10.12.2004, 21:46
http://www.deltacom.co.il/document/oracle_ref.pdf

Надеюсь что помог smile

Автор: neutrino 10.12.2004, 22:17
Цитата(igon @ 10.12.2004, 19:57)
Кстати, так ли уж обязательно осваивать SQL*Plus? Есть ну очень хорошая программа PL/SQL Developer и она для Oracle10 уже вроде встроенная. Соотносится с SQL*Plus как Windows с командной строкой DOS 

Да, мне необходимо освоить именно ее и PL/SQL Developer. Как ты попал в точку! Поверь, это не мой выбор.


Desdichado, спасибо за доку smile
Добавлено @ 22:26
igon, я нашел у себя два таких файла.

Один файл tnsnames.ora находится по пути H:\DevSuiteHome\network\admin

Цитата
# TNSNAMES.ORA Network Configuration File: H:\DevSuiteHome\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
    )
  )


И второй файл tnsnames.ora, находящийся по H:\DevSuiteHome\network\admin\sample

Цитата
# This file contains the syntax information for
# the entries to be put in any tnsnames.ora file
# The entries in this file are need based.
# There are no defaults for entries in this file
# that Sqlnet/Net3 use that need to be overridden
#
# Typically you could have two tnsnames.ora files
# in the system, one that is set for the entire system
# and is called the system tnsnames.ora file, and a
# second file that is used by each user locally so that
# he can override the definitions dictated by the system
# tnsnames.ora file.

# The entries in tnsnames.ora are an alternative to using
# the names server with the onames adapter.
# They are a collection of aliases for the addresses that
# the listener(s) is(are) listening for a database or
# several databases.

# The following is the general syntax for any entry in
# a tnsnames.ora file. There could be several such entries
# tailored to the user's needs.

<alias>= [ (DESCRIPTION_LIST =  # Optional depending on whether u have
    # one or more descriptions
    # If there is just one description, unnecessary ]
  (DESCRIPTION=
    [ (SDU=2048) ] # Optional, defaults to 2048
    # Can take values between 512 and 32K
    [ (ADDRESS_LIST=    # Optional depending on whether u have
    # one or more addresses
    # If there is just one address, unnecessary ]
      (ADDRESS=
  [ (COMMUNITY=<community_name>) ]
  (PROTOCOL=tcp)
  (HOST=<hostname>)
  (PORT=<portnumber (1521 is a standard port used)>)
      )
      [ (ADDRESS=
    (PROTOCOL=ipc)
    (KEY=<ipckey (PNPKEY is a standard key used)>)
  )
      ]
      [ (ADDRESS=
    [ (COMMUNITY=<community_name>) ]
    (PROTOCOL=decnet)
    (NODE=<nodename>)
    (OBJECT=<objectname>)
  )
      ]
              ... # More addresses
    [ ) ] # Optional depending on whether ADDRESS_LIST is used or not
    [ (CONNECT_DATA=
  (SID=<oracle_sid>)
  [ (GLOBAL_NAME=<global_database_name>) ]
      )
    ]
    [ (SOURCE_ROUTE=yes) ] 
  )
  (DESCRIPTION=   
    [ (SDU=2048) ] # Optional, defaults to 2048
    # Can take values between 512 and 32K
    [ (ADDRESS_LIST= ] # Optional depending on whether u have more
    # than one address or not
    # If there is just one address, unnecessary
      (ADDRESS
  [ (COMMUNITY=<community_name>) ]
  (PROTOCOL=tcp)
  (HOST=<hostname>)
  (PORT=<portnumber (1521 is a standard port used)>)
      )
      [ (ADDRESS=
    (PROTOCOL=ipc)
    (KEY=<ipckey (PNPKEY is a standard key used)>)
          )
      ]
      ...  # More addresses
    [ ) ]  # Optional depending on whether ADDRESS_LIST 
    # is being used
    [ (CONNECT_DATA=
  (SID=<oracle_sid>)
  [ (GLOBAL_NAME=<global_database_name>) ]
      )
    ]
    [ (SOURCE_ROUTE=yes) ]
  )
  [ (CONNECT_DATA=
      (SID=<oracle_sid>)
      [ (GLOBAL_NAME=<global_database_name>) ]
    )
  ]
  ...  # More descriptions
[ ) ] # Optional depending on whether DESCRIPTION_LIST is used or not


В первом (видимо второй - это что-то не то) у меня нет этого "(SERVICE_NAME = ...)".

Автор: neutrino 10.12.2004, 22:32
И никакой БД я не создавал. Может я чего-нибудь недоустановил?

Автор: S.A.P. 10.12.2004, 22:46
Посмотри, запущен ли сервис Listiner?

Автор: neutrino 10.12.2004, 22:51
Цитата(Perchilla @ 10.12.2004, 21:46)
Посмотри, запущен ли сервис Listiner?

нет.

Автор: S.A.P. 10.12.2004, 23:00
Должен быть запущен посмотри в NET8 configuration assistant. Или можно из консоли DOS что то типа Lsnrctl -start. Сейчас под рукой ничего нет, жаль посмотреть не могу.

Автор: neutrino 10.12.2004, 23:46
Цитата(Perchilla @ 10.12.2004, 22:00)
Должен быть запущен посмотри в NET8 configuration assistant

Попытался загрузить, но в списке процессов листенинг не появился.

Автор: igon 11.12.2004, 00:00
H:\DevSuiteHome\network\admin\sample - это просто примеры или шаблоны

А базы действительно нет smile
Попробуй в строку связи вставить EXTPROC_CONNECTION_DATA или PLSExtProc.
Если заработает - я буду весьма удивлен smile

В описании продукта
"Oracle Developer Suite ... предназначен для создания Web-приложений .... тесно интегрирован с Oracle Database и Oracle Application Server, образуя единую платформу для создания и установки приложений на любые устройства"

Тебе надо в первую очередь установить Oracle9i Database (или 10 версию) и (пока) ничего более. После установки и TNSListener в сервисах появится smile

Автор: neutrino 11.12.2004, 00:08
Цитата(igon @ 10.12.2004, 23:00)
Тебе надо в первую очередь установить Oracle9i Database (или 10 версию) и (пока) ничего более. После установки и TNSListener в сервисах появится

Спасибо, уже ставлю.


Автор: neutrino 11.12.2004, 00:44
Вылезли, правда, пара сообщений о какой-то невозможности определить АйПи хоста...

Автор: igon 11.12.2004, 01:35
Может, это инсталляшка пытается папаше Oracle сообщить, чем ты тут занимаешься? smile К Сети ты в этот момент был подключен?

В твоем случае IP хоста 127.0.0.1
ИМХО, сообщения можно игнорировать - инсталляция ведь не остановилась?

Автор: neutrino 11.12.2004, 14:37
Цитата(igon @ 11.12.2004, 00:35)
К Сети ты в этот момент был подключен?

Да.

Цитата(igon @ 11.12.2004, 00:35)
ИМХО, сообщения можно игнорировать - инсталляция ведь не остановилась?

Инсталляция не остановилась.

Но теперь, если я пишу:
SCOTT
TIGER
NEUTRINO (это то, что я указал на запрос имени БД)

он долго думает, а потом выдает

Цитата
ERROR:
ORA-12170: TNS:Connect timeout occured

Автор: igon 11.12.2004, 22:45
Ошибка ORA-12170: TNS:Connect timeout occured в моем справочнике ошибок отсутствует

Посмотри в списке запущенных сервисов вот эти:
OracleNEUTRINOAgent
OracleNEUTRINOManagementServer
OracleNEUTRINOTNSListener
OracleServiceNEUTRINO

Если какие-то не запущены - запусти и поставь их на автоматический запуск.

В командной сроке запусти tnsping NEUTRINO. Должна выдать твою запись в tnsnames и время пинга - у меня 70 мсек.

Посмотри здесь (правда, это для 10 версии, но отличий не должно быть много)
"Resolving the Most Common Error Messages for Oracle Net Services"
https://cwisdb.cc.kuleuven.ac.be/ora10doc/network.101/b10775/troublestng.htm#i440403

Насколько "сильна" твоя машина? ОЗУ для 9 и выше рекомендуется 512М и больше.
Если комп слабый, то такая ошибка не удивительна
"This error may be a result of network or system delays"

Автор: neutrino 12.12.2004, 12:33
smile Пень 3-450/ 256 Мб
Добавлено @ 12:41
Хоть и медленно, но куда-то я с твоей помощью продвигаюсь... smile

Все сделал, как ты сказал.

Теперь говорит, что пользователь заблокирован:

Цитата
ERROR:
ORA-28000: the accaunt is locked


П.С. Я тебя уже замучил, да?

Автор: igon 12.12.2004, 13:04
Цитата
П.С. Я тебя уже замучил, да?


Да нет, все в порядке. Вот только не получается достаточно бысто реагировать smile

Попробуй вместо scott/tiger ввести system/manager

Или даже такой вариант (одной строкой в поле Login и ничего более) system/manager@neutrino as SYSDBA

Цитата
Пень 3-450/ 256 Мб

Ты Oracle 10 установил? Мдя, с такими ресурсами тормоза будут

Автор: neutrino 12.12.2004, 15:00
Мдя... несуждено мне ...

Завел system/manager@neutrino as SYSDBA, на что он мне:

Цитата
ERROR:
ORA-12154: TNS: Невозможно разрешить имя службы



Цитата(igon @ 12.12.2004, 12:04)
Ты Oracle 10 установил? Мдя, с такими ресурсами тормоза будут

Судьба такая ...

Автор: neutrino 12.12.2004, 15:58
Я зашел в PL/SQL Developer под scott@NEUTRINO as SYSDBA
Добавлено @ 16:02
Но, в SQL*Plus я зайти не могу. smile

Автор: neutrino 12.12.2004, 16:13
Вот мои процессы ORACLE:

Автор: igon 12.12.2004, 22:02
По картинке я наконец понял, что у тебя 10 версия smile
Понял также, что база у тебя называется не NEUTRINO, а OraDb10g_home1. Под нее все сервисы и запущены.
Поэтому вместо
system/manager@neutrino as SYSDBA
попробуй
system/manager@OraDb10g_home1 as SYSDBA

Когда зашел в Developer, что написано в заголовке окна?
PL/SQL Developer - (Not logged on)?
Если да, то понятно - подключения к базе нет (у Scott не должно быть полномочий Sysdba).
Если нет (что-то вроде PL/SQL Developer - scott@<имя базы> - тогда ничего не понятно smile

Запости содержимое своих tnsnames файлов - всех, кроме тех, что в /sample.

Попробуй еще вариант одной строкой - / as SYSDBA или, если sql*plus пустил тебя в командное окно, написать после подсказки
connect / as SYSDBA

Можно попробовать вариант одной строкой без указания алиаса базы
system/manager as SYSDBA

В ближайшие 8 часов буду проверять ответы каждые полчаса-час, так что можем пообщаться интенсивней.

Автор: neutrino 13.12.2004, 00:17
Цитата(igon @ 12.12.2004, 21:02)
попробуй
system/manager@OraDb10g_home1 as SYSDBA

Не прошло. Та же самая ошибка:
Цитата
ERROR:
ORA-12154: TNS: Невозможно разрешить имя службы



Цитата(igon @ 12.12.2004, 21:02)
Когда зашел в Developer, что написано в заголовке окна?
PL/SQL Developer - (Not logged on)?

scott@NEUTRINO as SYSDBA


Цитата(igon @ 12.12.2004, 21:02)
Запости содержимое своих tnsnames файлов - всех, кроме тех, что в /sample.

Цитата
# tnsnames.ora Network Configuration File: H:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

NEUTRINO =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = neutrino)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )



Цитата
Попробуй еще вариант одной строкой - / as SYSDBA или, если sql*plus пустил тебя в командное окно, написать после подсказки
connect / as SYSDBA

Можно попробовать вариант одной строкой без указания алиаса базы
system/manager as SYSDBA


Все эти варианты дали ошибку:
Цитата
ERROR:
ORA-12560: TNS: ошибка адаптера протокола



Цитата(igon @ 12.12.2004, 21:02)
В ближайшие 8 часов буду проверять ответы каждые полчаса-час, так что можем пообщаться интенсивней.

Я скорее всего ближайшие 7 часов буду спать. Завтра надо быть рано на базе. Я вот подумал. Если все так сложно, а ну его нафиг? В Developer'e можно делать все тоже самое? Можно писать на PL/SQL'e?
Добавлено @ 00:20
igon, ты можешь пользоваться "быстрой цитатой". В верхнем правом углу каждого сообщения есть такая кнопка. Для цитирования просто выдели ту часть текста в сообщении и нажми на ту кнопку. Это очень удобная фича.

Автор: igon 13.12.2004, 00:53
Цитата
В Developer'e можно делать все тоже самое? Можно писать на PL/SQL'e?


Конечно, можно! Более того, в режиме Command Window можно практически полностью эмулировать SQL*Plus

Да, еще: SQL*Plus ты каким пользуешься? У тебя сейчас их 2 экземпляра должно быть. Так нужно пользовать второй, который был установлен при инсталляции базы.

Автор: igon 13.12.2004, 01:12
Цитата
Да, еще: SQL*Plus ты каким пользуешься? У тебя сейчас их 2 экземпляра должно быть. Так нужно пользовать второй, который был установлен при инсталляции базы.


Причина, кажется, именно в этом - я запустил "неродной" SQL*Plus и получил такую же, как у тебя, ошибку smile

Автор: neutrino 13.12.2004, 18:38
Цитата(igon @ 12.12.2004, 23:53)
Да, еще: SQL*Plus ты каким пользуешься? У тебя сейчас их 2 экземпляра должно быть.

Ты как всегда прав.

Но
Цитата(igon @ 13.12.2004, 00:12)
Причина, кажется, именно в этом - я запустил "неродной" SQL*Plus и получил такую же, как у тебя, ошибку

только не у меня. Обе запускал - не пашут. Ладно, оставь. Экзамен у меня уже завтра. Что успею выучить по PL/SQL, то и выучу.

Огромное тебе человеческое спасибо за помощь. Может я когда-нибудь вернусь к этой теме, и мы снова накрутим этак с десяток страниц.

Еще раз спасибо!

Автор: igon 14.12.2004, 02:05
Счастливой сдачи и удачи smile

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