Добавить в избранное   Сделать стартовой   Главная   E-mail   Форум   Мой блог 
   
Cертификации

Errors

ETL

FAQ (по темам)

GIS

Web

wiki

Администрирование

Безопасность

Книги
Oracle, ...

Новости

ОС

Программирование

Проектирование БД

Производительность

Скачать

Советы

Тестирование

Установка

FAQ - по базам данных
FAQ - по базам данных
Установка СУБД
Oracle
Sybase
MySQL
PostgreSQL
MS SQL Server
Interbase, Firebird
Другие DB
Администрирование
Oracle
MySQL
Sybase
PostgreSQL
MS SQL Server
Interbase, Firebird
IBM DB2
Другие DB
Проектирование БД
Статьи
ETL
Теория БД
ErWin
Designer 2000
PowerDesigner
Хранилища данных
CASE средства
OLAP
Бизнес - анализ (BI)
Производительность
Oracle
MSSQL
Interbase, Firebird
IBM DB2
MySQL
PostgreSQL
SYBASE
Безопасность БД
Oracle
MS SQL Server
Инъекция SQL
Программирование
Transact-SQL
PL/SQL
C++
XML
SQL
PostgreSQL
MDX
Java
VBA Excel
Книги по базам
Oracle
Заказ книг
ОС
Установка и настройка
UBUNTU
ОС
Установка и настройка
UBUNTU
FAQ
FAQ - по базам данных
Главная arrow FAQ - по базам данных arrow СУБД Oracle

СУБД Oracle

Печать E-mail
Коннект к удаленному серверу.

Можно ли средствами Oracle запустить функцию/процедуру в заданное время?

Использование DDL-операторов в процедурах на примере CREATE TABLE

Можно ли создать вычисляемое поле,
и как быть с null + число = null, а нужно число.

Как построить дерево средствами Оракл?

Для чего необходим Oracle Names Server?

Как проверить, что Оракл установлен и работает правильно? Коннект к удаленному серверу.

или что такое ORA-12154 и как с ним бороться. Для соединения с удаленным сервером БД Oracle (рассматривается версия 8.1.5 и выше) на машине, с котрой планируется устанавливать соединение, необходимо установить Oracle клиента (обычно поставляется вместе с инсталляцией смого сервера или можно скачать отдельно с их сайта, версии клиента и сервера могут незначительно отличаться, нормально функционирует клиент 8.1.5 с сервером 8.1.6). Если особой необходимости нет, то желательно при установке как сервера, так и клиента указать минимальное количество протоколов связи и ограничиться только TCP/IP. Параметры, по которым клиент ищет сервер, с которым ему нужно связаться, описываются в файле ORACLE_HOME/network/admin/tnsnames.ora, например следующим образом:

This_client_name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = sidname)
    )
  )


где: This_client_name - имя, котрое нужно указывать в параметре Connection String диалога установления соединения SQL Plus например. hostname - имя сервера, на котором установлен сервер Оракла. Желающие могут покопаться в системе Oracle Names, а для локальной сети достаточно указать имя компьютера (ну и не забыть прописать его в hosts). sidname - SID, заданный при создании базы данных на сервере Оракла. Проверять правильность конфигурирования соединения лучше всего с помощью SQL Plus. Если оно работает, то есть шанс, что и из других приложений удастся добиться установления соединения. Это если приложение способно правильно распознать переменную ORACLE_HOME. Если приложение эту переменную игнорирует, то следует поэкспериментировать с копированием файла tnsnames.ora в директории, в которой например это приложение выполняется.

В некоторых случаях возниает проблема - ORA-06401. Решается удалением из tnsnames.ora всех символов перевода каретки, т.е. файл преобразуется к Юникс-формату, где конец строки обозначается только символом завершения строки - new line.

Особняком стоит native JDBC для Оракла, которому клиент не требуется. Там в строке соединения указываются все те же параметры, что и в tnsnames.





[ссылка]

Можно ли средствами Oracle запустить функцию/процедуру в заданное время?

Для этих целей в Oracle существует модуль DBMS_JOB, позволяющий задвать расписание для выполнения определенных процедур. Как и все в Оракле, богат разнообразными настройками.





[ссылка]

Использование DDL-операторов в процедурах на примере CREATE TABLE

Во первых строках заметим, что DDL-операторы в хранимых процедурах (функциях, триггерах) PL\SQL применять нельзя, но можно выполнить их через можуль DBMS_SQL и получить собственно искомый результат.

   v_cursor number;
    v_create varchar2(50);
begin
    v_create := 'create table example (ex number)';
    begin
        v_cursor := dbms_sql.open_cursor;
        dbms_sql.parse(v_cursor, v_create, dbms_sql.v7);
    exception
        when others then
            dbms_sql.close_cursor(v_cursor);
            raise;
    end;
    dbms_sql.close_cursor(v_cursor);
end dbms_create;


Для выполнения процедуры, естно, надо заиметь привилегии(у нас диктатура администратора, а не демократия). (С) Алексей Филиппов





[ссылка]

Можно ли создать вычисляемое поле,
и как быть с null + число = null, а нужно число.

Такая функция называется NVL. NVL(x, 0), если x not NULL, то вернет число, в противном случае 0. Всегда NVL(x, 0)+число=число;





[ссылка]

Как построить дерево средствами Оракл?

Задавать древовидные связи крайне просто - с помощью внешнего ключа, ссылающегося на первичный ключ той же таблицы. Т.е. в таблице должны быть записи вида:

ID -- primary key

PARENT_ID --foreign key

Выводить древовидную структуру уже несколько сложнее. Для этого можно использовать объединения, где одна и та же таблица представляется разными алиасами. Примерно так:

SELECT parent.name AS parent, child.name AS child

FROM table AS parent, table AS child

WHERE parent.id=child.parent_id

ORDER BY child.parent_id

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

Как показывает опыт, такой схемы вполне достатоно для большого круга задач. К тому же она обладает весьма полезным свойством - практически одинаково (с точностью до диалекта SQL) реализуется в большинстве известных СУБД (включая MySQL :)



Кроме того, можно почитать весьма интересную статью про построение деревьев в Оракл здесь: http://www.arsdigita.com/books/sql/trees.html





[ссылка]

Для чего необходим Oracle Names Server?

Если БД всего одна - не нужен. Нужен лишь при большой и распределенной структуре баз данных для хранения информации о том "как мы будем коннектиться к БД <tra-la-la>" в одном месте.





[ссылка]

Как проверить, что Оракл установлен и работает правильно?

Самые простые проверки (для определения - жив ли Оракл в принципе).
 
1) lsnrctl status
Если нет ошибок - значит листенер "up & running" и может принимать коннекты от пользователей.


2) sqlplus /nolog
connect sys/<sys_pwd> as sysdba
select count(*) from v$session;
Если не выдает ошибки и count(*) > 0 Оракл жив-здоров и как минимум серверные процессы активны.
 
 
« Пред.   След. »
Взаимосвязанные статьи
     

Последние добавленные статьи
Поиск
Ссылки
Главная
Скачать
Курсы
Роль АБД (SYSDBA)
Карта сайта
Автостекла
Контакты
Войти на сайт
Популярные статьи
Online - тесты
1Z0-042
Rambler's Top100 МЕТА - Украина. Рейтинг сайтов хостинг от freehost.com.ua

Все права защищены.SYSDBA 2010 | Если у Вас есть хороший материал пришлите его нам.