Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ТОП популярных вопросов  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7839
В первую очередь, обратите пожалуйста внимание на FAQ:Получение доступа и использование документации

Раз Вы здесь, то посмотрите еще FAQ: Как мне оформить свое сообщение?

P.S. Раньше все было в одном сообщении, теперь разбросано по нескольким. Старые номера, которые могли быть указаны в сообщениях, перекочевали на новые места:

1. Где можно скачать Oracle? Общие вопросы N1
2. Подскажите среду разработки для Oracle. Общие вопросы N2
3. Как создать автоинкрементное поле, поле-счетчик? SQL, PL/SQL N1
4. Почему в своем pl/sql-коде (представлении/процедуре/триггере/пакете) не удается использовать чужой объект - выдается ошибка ORA-00942 table or view does not exist? Общие вопросы N7
5. Как вернуть запрос из функции? SQL, PL/SQL N4
6. Как обойти мутирование таблиц? SQL, PL/SQL N7
7. Для чего нужна таблица SYS.DUAL? Общие вопросы N6
8. Почему не получается сравнение с пустой строкой? Общие вопросы N8
9. Мне нужно создать из процедуры или пакета PL/SQL временную таблицу, поработать с ней а затем удалить. Как? SQL, PL/SQL N8
10. Трассировка сессий: как получить список запросов, выполняемых сессией (моей, чужой) в Oracle? Общие вопросы N4
11. Как запросом получить требуемое количество записей? SQL, PL/SQL N3
12. Как в PL/SQL работать с массивами? SQL, PL/SQL N9
13. Как в Oracle получить запросом данные из других не-Oracle баз данных? Администрирование и настройка N2
14. Как получить все значения одного поля в одной строке? SQL, PL/SQL N5
15. Где Oracle хранит метаданные о своих объектах? Как получить запросом список пользователей, ролей, объектов БД, скрипт на создание объектов БД? Общие вопросы N5
16. Как перенести базу данных Oracle на другую машину? Как создать копию БД Oracle? Администрирование и настройка N1
17. Как уменьшить размер временного табличного пространства (temporary tablespace) TEMP? Администрирование и настройка N3
18. Как получить историю команд для SQL*Plus, RMan и т.п. на и т.п. на Unix, Linux терминалах? Общие вопросы N3
31 авг 05, 18:16    [1834103]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: ТОП популярных вопросов  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7839
Общие вопросы

1. Вопрос. Где можно скачать Oracle?
Ответ. Базы Данных Oracle различных версий и другие продукты Oracle доступны для скачивания на Oracle Technology Network в разделе Download. На данный момент ссылка на Oracle10g:
http://www.oracle.com/technology/software/products/database/oracle10g/index.html
Далее смотрите условия лицензионного соглашения.

2. Вопрос. Подскажите средства разработки для Oracle.
Ответ. FAQ: Средства разработки для Oracle

3. Вопрос. Как получить историю команд для SQL*Plus, RMan и т.п. на и т.п. на Unix, Linux терминалах? Как заставить работать кнопки "стрелка вверх", "стрелка вниз" на *nix''ах?
Ответ. Воспользуйтесь утилитой rlwrap: sql*plus на UNIX терминалах (история команд)

4. Вопрос. Трассировка сессий: как получить список запросов, выполняемых сессией (моей, чужой) в Oracle?
Ответ. FAQ:Как включить трассировку сессии?

Для Windows-клиентов, работающих через OCI, есть утилиты:
Above software Statement Tracer for Oracle
Toadsoft SQL Monitor
Quest software SQL Monitor в составе продуктов SQL Navigator, TOAD for Oracle

  • 5. Вопрос. Где Oracle хранит метаданные о своих объектах? Как получить запросом список пользователей, ролей, объектов БД и их свойств (таблиц, представлений, комментариев, полей, триггеров, процедур, пакетов и т.п.)? Как получить скрипт на создание пользователей, ролей, объектов БД?
    Ответ.
    Oracle9i
    Database Concepts Release 2 (9.2) -> The Data Dictionary

    Oracle9i Database Reference Release 2 (9.2) -> Static Data Dictionary Views
    Oracle9i Supplied PL/SQL Packages and Types Reference Release 2 (9.2) -> DBMS_METADATA
    Список представлений словаря:
    select * from dictionary;

    6. Вопрос. Для чего нужна таблица SYS.DUAL?
    Ответ. В Oracle, в отличие от тех же MSSQL или Sybase, нельзя сделать запрос "из ниоткуда" :
    SQL> select 1 as value;
    select 1 as value
                    *
    ERROR at line 1:
    ORA-00923: FROM keyword not found where expected
    
    Как правило, для таких запросов используется таблица DUAL в схеме SYS, содержащая только одну запись.

    7. Вопрос. Почему в своем pl/sql-коде (представлении/процедуре/триггере/пакете) не удается использовать чужой объект - выдается ошибка ORA-00942 table or view does not exist - хотя в sql-запросе или в анонимном pl/sql/блоке все нормально, обращение к объекту другого пользователя проходит без проблем?
    Ответ. Скорее всего на чужой объект есть привилегия, выданная только через роль. Для использования объектов другого пользователя или системных привелегий в своих процедурах/триггерах и т.д., а также в job-ах необходимо дать на них привилегию напрямую, не через роль.
    Так же это правило следует учесть для динамического SQL: FAQ: ORA-01031: insufficient privileges при выполнении динамического SQL в процедурах

    8. Вопрос. Почему не получается сравнение с пустой строкой?
    Ответ. FAQ: Пустая строка в Oracle. Сравнение с пустой строкой

    9. Вопрос. При попытке подключения к Oracle 10g Express Edition возникает ошибка ORA-12705: Cannot access NLS data files or invalid environment specified.
    Ответ. В Oracle 10g Express Edition отсутствует значение NLS_TERRITORY=CIS, вместо него используется NLS_TERRITORY=RUSSIA. Следует указать его в значении переменной NLS_LANG при работе через клиент Oracle. Для Java приложений при запуске можно указать параметр -Duser.language=en, тогда будут использовать английские настройки для NLS_TERRITORY.
  • 11 окт 06, 15:38    [3248256]     Ответить | Цитировать Сообщить модератору
     Re: ТОП популярных вопросов  [new]
    Denis Popov
    Member

    Откуда: Санкт-Петербург
    Сообщений: 7839
    Администрирование и настройка

    1. Вопрос. Как перенести базу данных Oracle на другую машину? Как создать копию БД Oracle?
    Ответ. 4FAQ - клонирование базы

    2. Вопрос. Как в Oracle получить запросом данные из других не-Oracle баз данных, как связать Oracle и другую не-Oracle базу данных?
    Ответ. Для Oracle на Windows (для операционной системы с имеющимся ODBC?) Создание гетерогенного сервиса с использованием ODBC в Oracle для Windows на примере Excel.

    3. Вопрос. Резко вырос размер временного табличного пространства (temporary tablespace) TEMP. Как уменьшить (очистить) его?
    Ответ. AskTom "temporary tablespace"
    Temporary tablespaces should appear "full" after a while in a normally running database. Extents are allocated once and then managed by the system. Rather then doing the rather expensive operation of "space management" (data dictionary updates), the system will allocate an extent in TEMP and then keep it and manage it itself. This is normal and to be expected and is not an indication that you do not have any temporary space.

    See the dynamic performance views V$SORT_USAGE and V$SORT_SEGMENT for more information regarding the usage of space within these temporary segments. V$SORT_USAGE will tell you who's using what.

    select s.sid,s.username,s.osuser,s.machine,s.program,u.tablespace,u.contents,u.segtype,u.extents,u.blocks
    from v$sort_usage u, v$session s
    where u.session_addr = s.saddr
    order by BLOCKS desc
    
    Если вы уверены, что размер TEMP слишком большой для ваших приложений, то пересоздайте его. Заодно поищите причину его роста.

    4. Вопрос. Стоимостной оптимизатор (CBO) выбирает неверный план выполнения запроса. Как заставить оптимизатор выбирать другой план выполнения, например, использовать (не использовать) индекс?
    Ответ. FAQ: Основные причины ошибок CBO.
    11 окт 06, 15:48    [3248322]     Ответить | Цитировать Сообщить модератору
     Re: ТОП популярных вопросов  [new]
    Denis Popov
    Member

    Откуда: Санкт-Петербург
    Сообщений: 7839
    SQL, PL/SQL

    1. Вопрос. Как создать автоинкрементное поле, поле-счетчик? Какой существует аналог IDENTITY, AUTOINCREMENT?
    Ответ. Воспользоваться таким объектом БД как SEQUENCE: FAQ: Автоинкрементное поле

    2. Вопрос. Неуникальные строки, строки-дубликаты: как найти неуникальные строки в таблице, как удалить лишние строки и оставить только уникальные?
    Ответ. FAQ: Поиск и удаление строк - дубликатов.

    3. Вопрос. Как запросом получить требуемое количество записей?
    Ответ.
  • Воспользоваться представлениями из словаря БД вроде ALL_OBJECTS, DBA_OBJECTS.
  • Создать свою таблицу с количеством записей не меньше требуемого.
  • Написать процедуру, возвращающую объектную таблицу с указанным количеством записей.
    Пример обсуждения: select натуральный ряд. Статья в Oracle Magazine: Turning On Pivot Tables.

    4. Вопрос. Как вернуть запрос из функции?
    Ответ. Стандартным средством Oracle для возврата выборки из процедуры/функции является работа с REFCURSOR''ом: FAQ: Курсор(select) из хранимых процедур, функций. Если требуется использовать функцию в секции FROM запроса, то следует воспользоваться: FAQ: Запрос из функции, FAQ: Запрос из функции 2

    5. Вопрос. Как получить все значения одного поля в одной строке, через разделители?
    Ответ. Нужна помощь в составлении запроса., Результат SELECT-а в одну строку, Как получить значения всех строк определенного столбца в одной строке?, недокументированная функция wmsys.WM_CONCAT().
    Обратите внимание на следующий вопрос:

    6. Вопрос. Можно ли написать собственную агрегирующую функцию, например, для конкатенации строк или умножения чисел?
    Ответ. AskTom "Function to concatenate output", “Простые дроби”, “В коробке с карандашами...” или Агрегирующие Функции Определяемые Пользователем.

    7. Вопрос. Как обойти мутирование таблиц? Что означает ошибка ORA-04091 table string.string is mutating, trigger/function may not see it?
    Ответ. Один из примеров: FAQ: Мутирование таблиц

    8. Вопрос. Временные таблицы: существуют ли они в Oracle, как создать временную таблицу из процедуры или пакета PL/SQL, поработать с ней а затем удалить. Как?
    Ответ. В Oracle для этих целей используются временные таблицы, но их поведение и применение отличается от других SQL-серверов. FAQ: Временные таблицы

    9. Вопрос. Как в PL/SQL работать с массивами?
    Ответ. Под массивами могут подразумеваться PL/SQL-таблицы или объектные типы-таблицы.
    Oracle® Database PL/SQL User''s Guide and Reference 10g Release 2
    5. Using PL/SQL Collections and Records
    //http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/collections.htm#i26701

    10. Вопрос. Как проверить, что строка символов является числом?
    Ответ. Отсечение цифр от букв....., Сортировка строки как числа, Можно ли выбрать только те значения, которые являются числами, Ошибка с To_Number.
  • 11 окт 06, 15:51    [3248342]     Ответить | Цитировать Сообщить модератору
    Все форумы / Oracle Ответить