Как пользоваться SQL*Plus ?

 
0
 
Oracle
ava
neutrino | 10.12.2004, 19:48
Приветствую!

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

Цитата
ERROR:

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


Что посоветуете делать?
Comments (25)
ava
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 и надо будет указать. Главное, не оставлять это поле пустым :)

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

Надеюсь что помог smile
ava
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
added later:
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 = ...)".
ava
neutrino | 10.12.2004, 22:32 #
И никакой БД я не создавал. Может я чего-нибудь недоустановил?
ava
S.A.P. | 10.12.2004, 22:46 #
Посмотри, запущен ли сервис Listiner?
ava
neutrino | 10.12.2004, 22:51 #
Цитата (Perchilla @ 10.12.2004, 21:46)
Посмотри, запущен ли сервис Listiner?

нет.
ava
S.A.P. | 10.12.2004, 23:00 #
Должен быть запущен посмотри в NET8 configuration assistant. Или можно из консоли DOS что то типа Lsnrctl -start. Сейчас под рукой ничего нет, жаль посмотреть не могу.
ava
neutrino | 10.12.2004, 23:46 #
Цитата (Perchilla @ 10.12.2004, 22:00)
Должен быть запущен посмотри в NET8 configuration assistant

Попытался загрузить, но в списке процессов листенинг не появился.
ava
igon | 11.12.2004, 00:00 #
H:\DevSuiteHome\network\admin\sample - это просто примеры или шаблоны

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

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

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

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

ava
neutrino | 11.12.2004, 00:44 #
Вылезли, правда, пара сообщений о какой-то невозможности определить АйПи хоста...
ava
igon | 11.12.2004, 01:35 #
Может, это инсталляшка пытается папаше Oracle сообщить, чем ты тут занимаешься? smile К Сети ты в этот момент был подключен?

В твоем случае IP хоста 127.0.0.1
ИМХО, сообщения можно игнорировать - инсталляция ведь не остановилась?
ava
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
ava
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/n...tng.htm#i440403

Насколько "сильна" твоя машина? ОЗУ для 9 и выше рекомендуется 512М и больше.
Если комп слабый, то такая ошибка не удивительна
"This error may be a result of network or system delays"
ava
neutrino | 12.12.2004, 12:33 #
:( Пень 3-450/ 256 Мб
added later:
Хоть и медленно, но куда-то я с твоей помощью продвигаюсь... smile

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

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

Цитата
ERROR:

ORA-28000: the accaunt is locked


П.С. Я тебя уже замучил, да?
ava
igon | 12.12.2004, 13:04 #
Цитата
П.С. Я тебя уже замучил, да?


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

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

Или даже такой вариант (одной строкой в поле Login и ничего более) system/[email protected] as SYSDBA

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

Ты Oracle 10 установил? Мдя, с такими ресурсами тормоза будут
ava
neutrino | 12.12.2004, 15:00 #
Мдя... несуждено мне ...

Завел system/[email protected] as SYSDBA, на что он мне:

Цитата
ERROR:

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



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

Судьба такая ...
ava
neutrino | 12.12.2004, 15:58 #
Я зашел в PL/SQL Developer под [email protected] as SYSDBA
added later:
Но, в SQL*Plus я зайти не могу. :(
ava
neutrino | 12.12.2004, 16:13 #
Вот мои процессы ORACLE:
ava
igon | 12.12.2004, 22:02 #
По картинке я наконец понял, что у тебя 10 версия smile
Понял также, что база у тебя называется не NEUTRINO, а OraDb10g_home1. Под нее все сервисы и запущены.
Поэтому вместо
system/[email protected] as SYSDBA
попробуй
system/[email protected]_home1 as SYSDBA

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

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

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

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

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

system/[email protected]_home1 as SYSDBA

Не прошло. Та же самая ошибка:
Цитата
ERROR:

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



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

PL/SQL Developer - (Not logged on)?

[email protected] 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?
added later:
igon, ты можешь пользоваться "быстрой цитатой". В верхнем правом углу каждого сообщения есть такая кнопка. Для цитирования просто выдели ту часть текста в сообщении и нажми на ту кнопку. Это очень удобная фича.
ava
igon | 13.12.2004, 00:53 #
Цитата
В Developer'e можно делать все тоже самое? Можно писать на PL/SQL'e?


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

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


Причина, кажется, именно в этом - я запустил "неродной" SQL*Plus и получил такую же, как у тебя, ошибку smile
ava
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, то и выучу.

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

Еще раз спасибо!
ava
igon | 14.12.2004, 02:05 #
Счастливой сдачи и удачи smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit