sqlplus ошибка при запуске приложения

unixforum.org

Форум для пользователей UNIX-подобных систем

Решено: Oracle client (Нужна помощь в установке)

Модератор: Bizdelnick

Решено: Oracle client

Сообщение ekulikov » 17.11.2008 21:53

Сижу на Fedora8 (gnome) несколько дней, появилась необходимость подключиться к oracle серверу в фирме, где я работаю.
Отсюда http://www.oracle.com/technology/software/. /linuxsoft.html
скачал следущие архивы и rpm’ы:

Архивы разорхивировал в папку, rpm’ы просто установил. вот что выдает мне консоль:

]# sqlplus
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

И так как я поиском на http://linuxforum.ru/ ничего путного не нашел, то у меня убедительная просьба помочь мне в моей проблеме) как можно подробнее)

file.php?avatar=12567

Re: Решено: Oracle client

Сообщение petyanamlt » 17.11.2008 22:04

Re: Решено: Oracle client

Сообщение ekulikov » 17.11.2008 22:15

file.php?avatar=5950

Re: Решено: Oracle client

Сообщение arkhnchul » 18.11.2008 10:42

Re: Решено: Oracle client

Сообщение ekulikov » 18.11.2008 15:57

Так, спасибо) Все библиотеки которые он у меня просил я скопировал в /usr/lib
Теперь выдает следущее:

file.php?avatar=5950

Re: Решено: Oracle client

Сообщение arkhnchul » 18.11.2008 16:19

Re: Решено: Oracle client

Сообщение ekulikov » 18.11.2008 16:41

ммм. ставил только вышеперечисленные архивы и пакеты в
/opt/oracle/instantclient/instantclient_11_1/

Вот результаты попыток:

[root@localhost oracle]# whereis oracle
oracle: /usr/lib/oracle /usr/include/oracle /usr/share/oracle

Источник

13 SQL*Plus Error Messages

This appendix lists error messages with prefixes SP2- and CPY- generated by SQL*Plus and i SQL*Plus:

For error messages with prefixes such as ORA-, TNS- and PLS- generated by Oracle Database, see the Oracle Database Error Messages guide.

SQL*Plus Error Messages

Remove extra white space and comments.

Re-code to use fewer commands and/or shorter variable names.

Place sections of the block into stored (or packaged) procedures, and then call these procedures from the block.

command filename [. ext ] [CR[EATE]|REP[LACE]|AP[PEND]]

where command can be SAVE, SPOOL or STORE SET

To use the command keywords CREATE, REPLACE, APPEND or one of their abbreviations as the filename, or to use the word FILE as the filename, you must enclose it in single quotes.

An error was encountered when creating the destination file.

A directory name specified in the SAVE statement was not found.

A system error made it impossible to open the file.

Check that the destination is valid and that there is sufficient space on the destination device.

Check the statement for a typing mistake in the directory name. Then issue the statement again after correcting the directory name.

An error was encountered when creating the destination file.

A directory name specified in the SAVE statement was not found.

A system error made it impossible to open the file.

Check that the destination is valid and that there is sufficient space on the destination device.

Check the statement for a typing mistake in the directory name. Then issue the statement again after correcting the directory name.

The file was not found under the specified name in the specified location.

File lacked the necessary privileges to open the file.

A system error made it impossible to open the file.

Make sure the file name specified is stored in the appropriate directory.

Make sure that the file has the privileges necessary for access. If it does not then change privileges accordingly.

Consult operating system documentation or contact the System Administrator.

][@ ] | /or Usage: CONN[ECT] username/password[@connect_identifier] [AS ]or: CONN[ECT] /[@connect_identifier] AS

Insufficient privileges to create a file.

A system error made it impossible to create a file.

Change privileges to allow creation of the file.

Consult the operating system documentation or contact the System Administrator.

No passwords were given.

The new passwords did not match.

This message is hard coded (in English) in the SQL*Plus source code so it can be displayed on message file error. It could never be read from this message file because the error occurs only when the message files cannot be opened. This entry in the message file is for documentation purposes only.

On Windows if the environment variable called SQLPLUS is set, it must contain the directory name of the SQL*Plus message files, for example %ORACLE_HOME%\sqlplus\mesg.

i SQL*Plus Error Messages

1. The Java VM heap grew too large due to executing scripts with large output or with too many concurrent sessions.2. Insufficient physical memory available for the Java VM.

1. Edit queries to reduce the number of rows returned.

2. Turn iSQL*Plus multi page output on to reduce the number of rows cached.

3. Schedule large scripts sequentially.

4. Use Oracle Resource Manager to limit user queries.

6. Review DDL and DCL that may have been executed prior to the memory shortage. Reexecute the script.

Источник

Управление обработкой ошибок при запуске sqlplus из сценариев оболочки

Я ввожу значения мусора, пытаясь заставить этот скрипт с ошибкой. Но, к сожалению, он продолжает двигаться вперед без какого-либо упоминания кода ошибки. Что еще нужно сделать?

5 ответов

то, что говорит Макс, правильно. Попробуйте этот измененный скрипт

обратите внимание на использование sql_return_code для захвата кода возврата SQLPLUS.

можно поймать ошибки sp2 в SQLPLUS 11g с помощью средства регистрации ошибок. Пожалуйста, взгляните на http://tkyte.blogspot.co.uk/2010/04/new-thing-about-sqlplus.html для получения дополнительной информации.

возможно, что ваши операторы whenever выполняются после установления соединения с БД (поскольку вы упомянули их впоследствии). Попробуйте следующий код :-

— это не правильно (или не правильно в большинстве случаев). Подробнее см. ниже.

в Windows это, вероятно, может работать (не проверено), но не в UNIX (проверено, как описано выше).

единственным надежным механизмом, вероятно, является катушка результатов в файл журнала, а затем сделать что-то вроде

таким образом, он будет grep файл журнала катушки, а затем вырезать фактический последний ORA-код.

тот факт, что вы вводите поддельные значения, вероятно, связаны только с логином. Затем: проверьте подключение к базе данных с помощью Shell script

вы можете только поймать ошибку sql или ошибку ОС. Dbms_output завершится ошибкой на уровне sqlplus, поэтому параметр всякий раз, когда ошибка не влияет на него.

Источник

Использование SQL*Plus и Oracle Enterprise Manager

Подключаться и работать с базами данных Oracle можно многими способами.Однако чаще всего для этого применяется предлагаемый в Oracle интерфейс и набор команд SQL*Plus. Интерфейс SQL*Plus, по сути, открывает окно в базу данных Oracle и потому очень широко используется разработчиками Oracle для создания программных единиц SQL и PL/SQL. Для администраторов баз данных Oracle этот интерфейс тоже является очень ценным инструментом по следующим причинам.

В этой статье я начинаю рассказывать о том, как использовать SQL*Plus для выполнения типичных задач по администрированию баз данных Oracle, о важных командах SQL*Plus, а также, вкратце, о том, как с помощью SQL*Plus создавать отчеты. Возможно, применять интерфейс SQL*Plus для создания большинства отчетов и не придется, но знать,как работают его многочисленные средства для генерации отчетов, совершенно не помешает.

Запуск сеанса SQL*Plus

Интерфейс SQL*Plus представляет собой утилиту, которая чаще всего применяется для подключения и работы с базами данных Oracle. Он поставляется в составе как серверного программного обеспечения Oracle Database 11g, так и клиентского программного обеспечения Oracle Client, а также нового программного обеспечения Oracle Instant Client.

После установки SQL*Plus на сервере или клиентской машине процесс подключения к серверу или клиенту и запуска сеанса SQL*Plus выглядит очень просто. Из-за того, что каждый сеанс SQL*Plus подразумевает установку соединения с базой данных (если только не применяется параметр /NOLOG), все, что требуется для запуска SQL*Plus и подключения к базе данных — это действительное имя пользователя и пароль.

Настройка среды

Перед вызовом SQL*Plus потребуется сначала правильно настроить среду Oracle.В частности, необходимо установить значения для таких переменных среды, как ORACLE_SID, ORACLE_HOME и LD_LIBRARY_PATH. Помимо этого иногда нужно установить значения и для таких переменных среды, как NLS_LANG и ORA_NLS11.

В случае не установки правильных значений для необходимых переменных среды будет возникать ошибка. Например, не установка надлежащего значения для переменной ORACLE_HOME перед запуском SQL*Plus будет приводить к появлению следующей ошибки:

В случае получения показной выше ошибки достаточно установить значение для переменной среды ORACLE_HOME:

Программное обеспечение SQL*Plus Instant Client

Для использования SQL*Plus инсталлировать полностью все серверное программное обеспечение Oracle Database вовсе не обязательно. Если нужно взаимодействовать через интерфейс SQL*Plus с базой данных, которая находится на другом сервере,вполне хватит и программного обеспечения SQL*Plus Instant Client. С помощью этого программного обеспечения к любой базе данных Oracle, функционирующей под управлением любой операционной системы, можно подключаться удаленным образом за счет указания ее имени и применения идентификатора сетевого подключения Oracle.Единственным требованием для подключения к удаленной базе данных подобным образом является указание имени удаленной базы данных в файле tnsnames.ora. Именно поэтому для SQL*Plus Instant Client требуется задавать переменную среды ORACLE_HOME.Существует также метод, который не требует применения на клиентском сервере файла tnsnames.ora. Называется он методом простого подключения (easy connect). Ниже приведен пример, показывающий, как с помощью идентификатора простого подключения установить от имени пользователя OE подключение к базе данных testdb, расположенной на сервере myserver:

В этом примере 1521 — это порт, используемый слушателем для получения запросов на установку подключения.

Запуск сеанса SQL*Plus из командной строки

Прежде чем подключаться к сеансу SQL*Plus, необходимо сначала правильно настроить среду и указать, с какой базой данных на сервере должно устанавливаться соединение по умолчанию. Делается это с помощью переменной среды ORACLE_SID.

После указания базы данных, которая должна использоваться по умолчанию (в приведенном примере это orcl) в переменной среды ORACLE_SID, можно получать доступ к SQL*Plus из приглашения командной строки, просто вводя команду sqlplus безо имени пользователя и пароля. SQL*Plus предложит ввести имя пользователя и пароль. В случае предоставления имени пользователя вместе с командой (например: sqlplus salapati),SQL*Plus будет приглашать ввести только пароль. Администратор баз данных должен входить от имени одной из административных учетных записей.

На заметку! На серверах UNIX ввод должен обязательно выполняться в нижнем регистре. В Windows интерфейс не чувствителен к регистру символов. За исключением этой небольшой детали, во всем остальном командный интерфейс SQL*Plus работает одинаково и на платформе Windows, и на всех вариантах платформ UNIX и Linux.

Разумеется, вводить имя пользователя и пароль можно и непосредственно при вызове SQL*Plus, но тогда пароль будет виден другим при его вводе. Ниже приведен пример:

Приглашение SQL (SQL>) означает, что соединение с SQL*Plus инициировано, и можно начинать вводить команды и операторы SQL, PL/SQL и SQL*Plus.

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

Определенные операции, например запуск и завершение работы, разрешено выполнять только в случае подключения к SQL*Plus с привилегиями SYSDBA или SYSOPER. При наличии привилегий SYSDBA (или SYSOPER) подключаться к SQL*Plus можно следующим образом:

Конструкция AS позволяет устанавливать привилегированные подключения пользователям, которым были выданы системные привилегии SYSDBA или SYSOPER.

Если в базе данных была создана учетная запись аутентифицированного пользователя операционной системы (ранее называвшаяся OPS$имя; см. главу 12), устанавливать подключение можно и просто указанием символа косой черты (/), как показано ниже:

Можно также подключаться через метод аутентификации операционной системы, за счет включения владельца программного обеспечения Oracle в группу администраторов баз данных (DBA):

Обратите внимание, что во всех предыдущих примерах имя базы данных при подключении через SLQ*Plus не указывалось. Объясняется это тем, что подключение устанавливалось к принятому по умолчанию экземпляру, т.е. к базе данных, на которую указывает значение переменной среды ORACLE_SID. Указывать имя базы данных при использовании SQL*Plus для подключения к принятой по умолчанию базе данных не обязательно. Для подключения к другой базе данных, доступной по сети, нужно обязательно использовать идентификатор подключения (имя сетевой службы).

На заметку! Имя экземпляра, имя базы данных и имя службы могут как совпадать, так и отличаться.

С теоретической точки зрения, подключаться к базе данных можно с использованием полного синтаксиса идентификатора подключения, как показано в следующем примере, где для подключения к базе данных orcl применяется весь адрес целиком:

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

Кроме того, для подключения к базе данных можно применять простой метод подключения. Синтаксис простого метода подключения выглядит так:

Например, вот как подключиться с помощью этого метода к базе данных orcl:

Обратите внимание, что в случае применения простого метода подключения сетевой файл (tnsnames.ora) не нужен.

Какой бы из перечисленных методов не использовался, в конечном итоге будет обязательно успешно устанавливаться сеанс SQL*Plus либо с базой данных по умолчанию,либо с той, что была указана в идентификаторе подключения.

Установка подключения с помощью команды CONNECT

В SQL*Plus поддерживается команда CONNECT, которая позволяет после входа в SQL*Plus выполнять подключение от имени другого пользователя. Кроме того, она позволяет после подключения к одной базе данных подключаться к другой базе данных.Ниже приведен пример использования команды CONNECT для выполнения подключения от имени другого пользователя:

Следующий пример демонстрирует, как в SQL*Plus подключаться к другой базе данных за счет предоставления идентификатора подключения в виде части команды CONNECT:

Перед подключением к другой базе данных необходимо проверять, что в файле tnsnames.ora присутствует необходимая информация о подключении к удаленной базе данных.

Команду CONNECT можно использовать в SQL*Plus вместе с синтаксисом / AS SYSDBA и / AS SYSOPER, как показано ниже:

Запуск сеанса SQL*Plus без установки подключения к базе данных с помощью параметра /NOLOG

Сеанс SQL*Plus можно также запускать и без установки подключения к базе данных,счет указав вместе с командой sqlplus параметр /NOLOG. В подобном может возникать необходимость, например, при запуске базе данных или просто для использования доступных в SQL*Plus команд для записи или редактирования сценариев. После запуска сеанса SQL*Plus для подключения к базе данных всегда можно применить команду CONNECT.

Ниже приведен пример использования параметра /NOLOG:

Подключение к SQL*Plus через графический интерфейс Windows

Работать с утилитой SQL*Plus можно как в ручном, так и в сценарном не интерактивном режиме. Само собой разумеется, что уязвимые административные задачи, вроде восстановления базы данных, лучше выполнять в интерактивном режиме. Что же касается рутинных операций по обработке SQL, то их выполнение лучше автоматизировать с помощью сценариев. И в том и в другой случае сами команды будут выглядеть одинаково — отличаться будет лишь режим, в котором они будут выполняться.

Ниже показан синтаксис команды подключения к SQL*Plus:

Подключаться от имени пользователя с привилегиями SYSOPER, SYSDBA или SYSASM необходимо для выполнения привилегированных операций, вроде завершения работы и запуска базы данных или резервного копирования либо восстановления базы данных.Привилегия SYSAM является новой в Oracle Database 11g и предназначена для разделения обычных операций по администрированию баз данных и операций автоматического управления памятью (Automatic Storage Management — ASM).

Работа в SQL*Plus

После подключения к интерфейсу SQL*Plus можно начинать вводить в нем любые команды SQL*Plus, SQL или PL/SQL. Как будет объясняться позже в этой главе, операторы SQL оканчиваются либо символом точки с запятой (;), либо символом косой черты (/), а блоки кода PL/SQL — только символом косой черты (/). Вывод можно как просматривать на экране, так и при желании записывать в файл. Команды SQL*Plus всегда оканчиваются символов новой строки. При вводе команды SQL*Plus клиентская программа SQL*Plus анализирует ее, и если та представляет собой оператор SQL или PL/SQL, отправляет ее серверу баз данных для обработки.

В этом примере из-за перехода на вторую строку после дефиса (-), который еще так же является и знаком минус, утилита SQL*Plus автоматически интерпретировала его как символ продолжения и выдала ошибку, потому что оператор получился синтаксически некорректным (select 200 100 from dual). Избежать этой проблемы можно за счет использования в конце первой строки второго дефиса (знака минус) для выполнения роли символа продолжения:

В Oracle для выполнения определенных запросов необходимо использовать таблицу DUAL, поскольку в поддерживаемом Oracle синтаксисе SQL наличие конструкции FROM в операторе SELECT является обязательным (например, SELECT sysdate FROM dual;).В базах данных Microsoft SQL Server, с другой стороны, использовать таблицу DUAL не требуется, потому что в синтаксисе SQL Server допускается применение операторов SELECT без конструкции FROM.

Завершение сеанса SQL*Plus

Завершается сеанс SQL*Plus вводом команды EXIT, причем как в нижнем, так и в верхнем регистре. С помощью команды QUIT осуществляется выход в операционную систему (регистр символов тоже роли не играет).

Внимание! В случае выполнения аккуратного выхода из SQL*Plus по команде EXIT (или QUIT) будет немедленно происходить фиксация всех транзакций. Если не нужно, чтобы происходила фиксация транзакций, перед выходом потребуется выполнить команду rollback.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • sqlite like без учета регистра
  • sql установка недостаточно прав доступа