Oracle PHP FAQ для новичков


Оглавление (нажмите, чтобы открыть):

С чего же начать изучение Oracle?

Все шаги по настройке описаны на этом сайте.

1) Устанавливаете VirtualBox.
2) Устанавливаете на него Oracle Linux или Centos (версии 6.X)
3) Настраиваете сеть, подключаетесь к серверу с помощью SSH.
4) Если не умеете работать с редактором VI, нужно посмотреть 10 команд, как им пользоваться (на сайте есть ссылки).
4) Устанавливаете Oracle 12C в Single конфигурации без ASM.
5) Устанавливаете Oracle Client на хост машине.
6) Подключаетесь к базе с помощью PL/SQL Developer или TOAD.

7) Далее решаете, чем предпочтительней заниматься SQL и PL/SQL или задачами связанными с администрированием.

8) Нужно пройти курс похожий на Oracle Database 12c: Administration Workshop I, II и/или SQL. Качаете pdf и видео. Pdf по 11 версии на английском 146% моно без проблем найти. По 10й на русском. Версия особо значения не имеет для старта. Видео, например от обучающего центра Специалист или даже лучше от cbtnuggets, если конечно более менее нормально с английским. Проходите этот курс, повторяя за учителем. После перечитываете pdf’ки. Если нужно администрирование, изучаете материалы по администрированию. Если SQL и PL/SQL то материалы по этой теме соответственно.

Все! Отличное начало для старта!

Если что-то не заработает, можно попробовать задать вопрос в чате.

Буду признателен, если будете изучать эти материалы и поможете добавить отсутствующую информацию на сайт. Интересует, например, пересоздание инстанса из pfile, восстановление после потерь файлов и многое другое.

Oracle DBA

Исходные коды проекта хранятся на bitbucket.

Лучше потратить какое-то количество времени, чтобы записать успешный опыт, чем потом повторно воспроизводить его по памяти.

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

Двухнедельный курс для самостоятельно
освоения ORACLE

  • Вы изучите азы теории (в концентрированном виде — только то, без чего невозможно начать работать).
  • Приобретете практические навыки работы с базой данных (вам будут даны команды и объяснён результат их выполнения — получить этот результат вы должны сами).
  • Вы изучите все основные команды из стандарта языка SQL с учётом нюансов их реализации в СУБД ORACLE (обычно в книжках по SQL про них забывают).
  • Освоите команды Data Definition Language (команды создания, изменения и удаления таблиц — CREATE/DROP/ALTER TABLE).
  • Научитесь добавлять, изменять и удалять записи в таблицах с помощью команд языка Data Manipulation Language (INSERT, UPDATE, DELETE).
  • Научитесь писать запросы для простых отчётов (синтаксис команды SELECT вы изучите на типовых запросах, которые даны, как mini -задачи на протяжении всего курса).
  • Вы научитесь создавать базу данных для простого приложения (курс построен на основе реального примера — изучая материал уроков, вы заодно осваиваете и один из этапов разработки базы данных).
  • Освоите простой и мощный инструмент, который выручит вас много-много раз (утилита SQL*Plus из дистрибутива ORACLE).

«Ваши уроки помогли мне систематизировать те знания, что у меня были и немного приблизиться к пониманию – что есть ORACLE.»

С уважением, Елена (EUgrumova at fa.ru)

Курс состоит из 12 писем + ссылки на дополнительные статьи + пара видеоуроков. По времени занимает около 2-х недель. От Вас потребутеся только желание учиться и наличие компьютера.

Приступите к учёбе прямо сейчас.

Качественные обучающие материалы для начинающих трудно найти. Обычно книги по ORACLE написаны для уже знающих людей и уже умеющих что-нибудь делать. Пошаговых инструкций для начинающих Вы в них не найдёте, а без них или без наставника начать работу с ораклом достаточно сложно.

«После изучения уроков я почувствовала уверенность, у меня появилось понимание — что к чему, появился багаж знаний и умений, который поможет мне осваивать Оракл дальше.»

Горбаченко Светлана (svetlanagorbachenko at yandex.ru)

«. они очень помогают (пишу дипломную работу). Очень все подробно расписано. Как раз то, что нужно при моем уровне знаний СУБД Oracle.»

Месилин Евгений (mesilin at mail.ru)

«. лично мне самыми полезными показались статья «Как правильно работать с датами в ORACLE» и небольшой видеоурок о структуре каталогов Oracle и работе служб Oracle. «

Донченко Елена (len_don at mail.ru)

«После каждого урока реально чувствуешь что прокачиваешься, улучшаешь свои скиллы.»

Oracle / PHP FAQ для новичков

Post by Vlad W. » 07 Sep 2003, 13:29

Post by Izik Y » 07 Sep 2003, 13:43

Post by Vic07 » 07 Sep 2003, 13:52

Не знaю. Думaю чтo средa для рaзрaбoтки.

Средсвo для coздaния oтчетoв

Post by Klava » 07 Sep 2003, 14:21

Post by Izik Y » 07 Sep 2003, 14:36

Уже немного проясняется. Так, продолжим.

1. Где применяется PL/SQL ?
2. А можно подробнее про SQR ?

Я не просто так спрашиваю. У нас пользуются всеми перечисленными средствами, вот я и хочу понять зачем.

Post by Decabrist » 07 Sep 2003, 14:56

Внимание(!) сообщение заговорено, модерирование данного сообщения приведёт к половому бессилию и неизлечимым венерическим заболеваниям

«Рейтинг — могучее послание тупых тупым» М.М.Жвaнецкий


Post by Портос » 07 Sep 2003, 14:58

Izik Y wrote: Уже немного проясняется. Так, продолжим.

1. Где применяется PL/SQL ?
2. А можно подробнее про SQR ?

Post by Izik Y » 08 Sep 2003, 06:51

SQR работает не только в среде UNIX, это точно. Mercator, как я понял, никто не знает, ну ладно, сам разберусь. Можно сказать, что это-псевдо-универсальный генератор отчетов и работает далеко не только с ORACLE. Итак, очередные вопросы

1. И все-таки, какова связь между SQL и PL/SQL ?
2. А что такое DataWindow ?
3. Что можно сказать проToad, и есть ли аналогичные продукты ?
4. Oracle Developer and PowerBuilder — сравнительная характеристика
5. SQR and Crystal Reports — сравнительная характеристика

Re: ORACLE для чайников

Post by Srdjan Levic » 09 Sep 2003, 00:21

Izik Y wrote: Чайник-это я, и не стыжусь этого. То есть, я не в программировании чайник, а конкретно в ORACLE. Общее представление об этой штуковине у меня есть, как и об SQL, но некоторые вещи меня смущают. Сразу оговорюсь, что опыта в этой области у меня нет, и поэтому вопросы будут действительно вопросами чайника. Итак меня смущает обилие разнообразных языковых и прочих средств. Я перечислю ниже некоторые термины и попрошу навести некоторый порядок в моей голове-что для чего, и в каких случаях применяется. Преимущества и недостатки, возможности, и т.д.

1. SQL
2. PL/SQL
3. Oracle Developer
4. SQR
5. Crystal Report
6. Powerbuilder
7. Mercator Design Studio

Post by Srdjan Levic » 09 Sep 2003, 01:03

Post by Izik Y » 09 Sep 2003, 08:31

Srdjan Levic, большое спасибо, стало гораздо понятнее. Я даже сам расшифровал RDBMS-Relational Database Management System. Я когда-то начинал работать с реляционными базами данных(ADABAS, DBASE), но в последнее время больше занимался иерархическими.

Осталось прояснить 2 вопроса:


2. А что такое DataWindow ?
3. Что можно сказать про Toad, и есть ли аналогичные продукты ?

Post by Srdjan Levic » 09 Sep 2003, 09:03

Izik_Y, you are wlecome :
Да самому было интересно ответить — не будучи программистом, ни DBA пришлось вникать в этот бизнес довольно плотно..У себя на фирме я реализовал (во многом успешно) миграцию от IBM DB/2 и MSSQL на Oracle — именно в орг.смысле — обоснование (различные убеждения начальства, коллег-подчиненных, обучение, начальная постановка задачи и пр.). Кстати, Developer, ранее успешно применяемый в прошлой жизни (на прошлой работе) у нас не прижился — в этом плане более приемлемым оказался Борланд Дельфи — в основном, из-за снижения времени обучения и простоты подбора программистов. Т.е.человеку надо учить и Oracle PL/SQL и Developer (который довольно специфическая и в общ.случае редкая вещь). В нашем случае оказалось проще и дешевле находить специалистов, имеющих опыт программирования для реляц.БД на Дельфи и давать им минимум времени на изучение PL/SQL и необх.специфики ORACLE..Но мы начинали с нуля, в отличие от сложившихся софтверных коллективов, где м.б. наработанный на Developer багаж, объем и какие-то специфические качественные характеристики которого могут делать переход на другой тулз нецелесообразным или нежелательным..
Примерно так.

А кстати, sorry за offtop., чисто академический интерес — ADABAS, он же вроде бы как-раз нереляционный — т.е.у него есть SQL-интерфейс, но тем не менее сама БД и «родной» (для этой БД) язык (описания данных и манипуляций ими) нереляционная, она то-ли сетевая, то-ли «иерархическая» (уже не помню классификацию и характеристики БД)?

Post by Ася » 09 Sep 2003, 09:09

TOAD — удобный и дружественный интерфейс для работы с ORACLE. The Tool for ORACLE Application Developers. Позволяет делать практически все операции в базе: SQL (run, просмотр результатов, экспорт результатов в ASCII), написание триггеров, процедур, функций, пакетов, view, сравнение баз даннных и т.д.и т.п. В коммерческой версии есть даже дебагер для PL/SQL. Аналогичным продуктом является, например, SQL Navigator. Просто у TOAD есть FreeWare download версия, которую нужно обновлять ежемесячно. Коммерческая версия TOAD просто класс, но и Freeware версии абсолютно достаточно для работы. Есть еще подобные продукты, но с ними я встречалась редко[/b]

30+ лучших приемов PHP для начинающих

Дата публикации: 2010-04-14

От Автора: PHP – самый широко используемый в Сети язык программирования. Представляем тридцать с небольшим лучших приемов для новичков, желающих приобрести основные навыки — php для начинающих.

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

Отчет об ошибках в PHP очень полезен. Вы обнаружите ошибки в своем коде, которых не замечали ранее, однако не все они препятствуют работе приложения. Есть разные уровни детализации отчета, которые можно использовать, но E_ALL будет одинаково представлять вам все ошибки, критические ситуации и предупреждения.

Когда ваше приложение готово к продуктивной эксплуатации, придется выключить отчет об ошибках, иначе ваши посетители будут видеть странные сообщения, в которых ничего не поймут.

3. Попробуйте IDE

IDE (Integrated Development Environments/интегрированные среды разработки) – полезные инструменты для любого разработчика. Хотя они подойдут не для каждого, IDE определенно имеют свое значение. IDE обеспечивают такие инструменты, как:

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Code completion (подсказки идентификаторов в редакторе кода)

Предупреждения об ошибках

Рефакторинг кода (переделка кода)

А также большое количество других возможностей. Существует множество отличных IDE, поддерживающих PHP.

4. Попробуйте PHP-frameworks

Вы можете многое узнать о PHP, просто экспериментируя с PHP-фреймворками. Такие фреймворки, как CakePHP или CodeIgniter, позволяют быстро создавать приложения PHP, даже если вы в нем не эксперт. В каком-то смысле они – дополнительные подпорки, которые показывают вам, каким образом должно выглядеть приложение PHP, и демонстрируют полезные концепции программирования (вроде отделения логики от дизайна и т.д.).

Возражение: лично я не советую новичкам пользоваться фреймворками. Сначала выучите основы.

5. Научитесь DRY


DRY – аббревиатура от Don’t Repeat Yourself, (Не Повторяйтесь), и это – полезная концепция программирования, без разницы на каком языке. DRY-программирование, как предполагается названием, гарантирует, что вы не пишете избыточного кода. Вот пример от Reinhold Weber:

теперь применением к нему подход DRY:

Более подробно о концепции DRY можно прочесть здесь и здесь.

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

Разделение на уровни ваших приложений – это ничто иное, как разделение различных компонентов кода на части. В будущем это даст вам возможность легко изменять код.

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

Именование – не только для вашего собственного удовольствия. Нет ничего хуже, чем продираться сквозь бессмысленные условные обозначения другого программиста. Помогите самому себе и другим, используя для своих классов и свойств имена, имеющие смысл.

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

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

14. Поймите разницу между одинарными и двойными кавычками

Использование одинарных кавычек в строках более эффективно, так как парсеру (синтаксическому анализатору) не приходится просеивать код в поиске специальных символов (прим. перев. escape-последовательностей) и прочих вещей, что позволяют двойные кавычки. Там, где это возможно, старайтесь всегда использовать одинарные кавычки.

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

Смоленский Форум

Oracle для новичков

Oracle для новичков

Сообщение green4x » 13 сен 2005, 00:03

Простите, господа, за вопрос такого уровня. Помещаю сей пост в General, а не Hard&Soft, потому как вопрос касается не только Oracle, но и обучения ему.

Постановка задачи: имеется желание знать и работать в Oracle, имеется знания основ программирования и ноль представления о среде разработки и администрирования БД под Oracle. Задача: знать и научиться работать в Oracle.

Вот если серьёзно: проблема в том что и не знаю с чего начать 😯 . Команды SQL что ль учить? Или подходить издали — MySQL для начала учить? Или теоритический курс построения БД читать 😯 . Спасибо Малахову (преп из СФ МЭИ) — хоть какое-то представление о БД у меня есть.

Да и что за литературу посоветуете? (Думаю что букваря по Oracle в природе не бывает. или бывает? 😕 ) А потом проверка знаний: сдавать сертификационный экзамен?

Вот такая весчь а Oracle нада. А ни разу ни с чем подобным не сталкивался.

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение at_hacker » 13 сен 2005, 01:28

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение Георгий » 13 сен 2005, 02:29

Там действительно с самого начала — от того как создать БД, импорт, экспорт и разные другие характерные именно для оракла фичи.

Oracle


Сообщение Sanches » 13 сен 2005, 07:42

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение winzard » 13 сен 2005, 09:39

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение anovikov » 13 сен 2005, 11:18

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение Belikov » 13 сен 2005, 20:56

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение winzard » 13 сен 2005, 23:15

Так тебя маткад не устраивает? Я ж еще Excel предлагал, причем совершенно серьезно. Там же в ем и VBA есть, если хочется совсем уж попрограммировать. Да и с web-ом можно намудрить чего-нибудь (хотя не понимаю, какой смысл там от веба, если все равно ActiveX. pkupzip.zip?)

green4x, «работать с БД» можно по разному. Был сегодня в Магните (плевался), там продавщицы тоже с БД работают. Пользователь? Программист? Администратор? В первую голову нужно именно SQL выучить, собственно Oracle там мало, подойдет любой SQL-92. У Оракла есть, конечно, некоторые фишки собственные, но на начальном этапе это и не важно. Можно тренироваться на PostreSQL. Он попроще, в нем есть много фишек от Оракла (но это не Оракл, понятно).
SQL знать и уметь нужно будет всегда. Потом — нормальные формы. Это уже проектирование баз данных. В принципе, нужно и программисту, и администратору. Здесь пригодится какой-нибудь ErWin.
А дальше программистское и администраторское образование расходится. Программисты идут учить OR-mapping, всякие framework и тулзы, администраторы — читать толстые книжки по конфигурянию оракла и раздаче прав.

С программистской точки зрения собственные фишки Оракла (типа иерархических запросов через connect to) — абсолютное зло. Ибо все, что отличается от среднего арифметического нужно дорабатывать напильником и сопровождать отдельно. С администраторской — наоборот, фишки рулят, т.к. позволяют тонко настроить, получше организовать, раздать и т.п.
Если замахнулся именно на Оракл и ни на что другое — MySQL лучше никогда не ставить, ибо проще он неимоверно и отупляет 🙂

re:Oracle ДМС ОПЧЙЮЛПЧ

Сообщение Belikov » 14 сен 2005, 00:34

Маткад устраивает в качестве подспорья для расчётов «с нуля». А мне нужно _автоматизировать_ мои (и не только) телодвижения, в идеале свести к минимуму занятых пикселей на экране и нажатий мышой. При этом нужна возможность видеть исходник и править его в случае чего оперативно. И тема изначально была поставлена про «модно», т.е. всякие вебсервисообразные фишки вижу полезными в плане будущей масштабируемости. Да, Excel подходит полностью, но чё-то мне кажется, что это не самое красивое решение (на мой взгляд он очень уж мм.. непрозрачный, да и бабок стоит неслабых). В данный момент приостановился на XUL + JavaScript и в свободные минутки колупаюсь.

Ещё есть Flex от Макромедии (наверное, более модная вещь), но навёоооорнутый, едрёна вошь. Опять таки, хоть заплатить придётся единожды (за IDE), но об OpenSource-ости можно будет забыть. Поэтому Flex фтопку. Туда же и маздайный XAML, который, наверное, будет иметь смысл когда у всех Longhorn будет стоять. И не менее SP2. 🙂

Подключение к базе данных Oracle на PHP

Пожалуйста, отключите блокировщик рекламы

По работе пришлось совершить подключение к базе данных Oracle на PHP. С Oracle раньше работать не приходилось, так что засел за долгое и мучительное гугление. Перелопатив англо- и русскоязычные форумы, Stack Overflow и прочие подобные ресурсы, в итоге получилось добиться результата, но путь был пройден не близкий. Так что, может быть, данная статья кому-нибудь пригодится.
Итак, начну с исходных данных, т.к. подключение к БД Oracle на разных системах и разных версиях PHP отличается. Вот что было у меня:

  • Windows 10, 64-bit;
  • OpenServer 5.2.2 (на других локальных серверах не пробовал, но думаю данное решение подойдет для XAMPP, Denwer и если вы развернете свой локальный сервер);
  • PHP 5.3 (на PHP 5.4 данная инструкция не работает);
  • Apaсру 2.2.

А теперь сделаем подключение к базе данных Oracle

  1. Для начала скачиваем Oracle Instance для версии Windows 32-bit (не спрашивайте, почему 32-bit, я не знаю, но именно так это работает). Версии Oracle Instance 11.2 отсюда (на момент написания статьи актуальная версия Version 11.2.0.4.0). Вам нужно будет зарегистрироваться, чтобы скачать, такая уж политика Oracle.
  2. Создаем на диске C папку instantclient_11_2, в которую разархивируем скачанный Oracle Instance.
  3. Создаем папке instantclient_11_2 папку network, а в ней папку admin и создаем в последней файл tnsnames.ora (тут немного инфы об этом файле). Конченый путь к файлу должен быть такой C:\instantclient_11_2\network\admin\tnsnames.ora. Открываем этот файл через редактор и вставляем следующий код:

MYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ххх.ххх.ххх.ххх)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ХХХ) ) )

где ххх.ххх.ххх.ххх — адрес хоста, к которому нужно подключиться. Порт обычно стандартный 1521. SERVICE_NAME = ХХХ — имя БД, к которой подключаемся. Данный шаг не обязательный, но если в итоге у вас не получиться подключиться к удаленной базе Oracle — выполните его.

  • А теперь самое невероятное. — копиуем содержимое папки instantclient_11_2 и вставляем его в папку с Apache 2.2/bin (мой путь — C:\OpenServer\modules\http\Apache-2.2\bin). Да-да, вы все правильно поняли — этот шаг был самый неочевидный и без него у меня ничего не работало.
  • Идем в “Свойства системы” (правой кнопкой по моему компьютеру — свойства — дополнительные параметры системы — переменные среды ). В разделе «Системные переменные» добавить записи — ORACLE_HOME со значением C:\instantclient_11_2 и PATH со значением C:\instantclient_11_2
  • Далее открываем файл php.ini и ищем следующие строки и раскомментируем их, если они закомментированы (убираем ‘;’ перед ними) и сохраняем:
    Было:

    Вот, собственно и все. Теперь можете пробовать подключаться к БД Oracle. Сделать это можно так:

    Важно! Не забудьте поменять значения ‘username’, ‘password’ и ‘xxx.xxx.xxx.xxx/db_name’ на свои значения.

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

    Если есть вопросы, задавайте, всегда рад буду помочь. И, если вам помогла эта статья — оценивайте, делитесь в соц. сетях и комментируйте, нам будет очень приятно ��

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Подписывайтесь на наш Telegram канал, чтобы не пропускать наши статьи ��

    Установка расширений OCI8 и PDO_OCI для PHP5

    В настоящее время я работаю в компании, которая очень любит использовать в проектах на PHP СУБД Oracle, причем иногда версии 11g.

    Большая часть разработчиков этой компании работает под ОС Windows. За последний месяц несколько из них решили приобщиться к Linux и поставили себе Ubuntu. По прошествии нескольких дней после установки самой ОС, ребята столкнулись с задачей установки драйверов PHP для работы с СУБД Oracle — OCI8 и PDO_OCI на базе Oracle instant client 11.2, которую не смогли решить самостоятельно.


    Я не нашел подробного, полностью рабочего мануала на русском, по которому новичок в Linux смог бы выполнить все манипуляции сам. В результате мне пришлось несколько раз проделать серию одних и тех же действий на их машинах и написать мануал, который я вам и представляю.

    Мануал написан для пользователей Ubuntu Linux, но с некоторыми изменениями подойдет для пользователей большинства Linux’ов.

    Подготовка к установке

    Установка Oracle instant client

    Скачиваем instant client Oracle с официального сайта http://oracle.com для своей архитектуры процессора и ОС.
    Для Linux instant client поставляется в двух вариантах:

    • RPM пакет — Linux, CentOS, Fedora, Red Hat Enterprise Linux, Mandriva Linux, SUSE Linux и д.р. у кого есть поддержка RPM;
    • ZIP архив — всем остальным.

    Необходимо скачать 2 файла:

    • instantclient-basic — сам Oracle instant client
    • instantclient-sdk — набор библиотек для разработки приложений под Oracle instant client

    Также можете скачать:

    • instantclient-sqlplus — SQL*Plus

    Создаем директорию, в которой будут лежать файлы Oracle instant client (каталог /opt, зарезервированный для дополнительных пакетов программного обеспечения, хорошо для этого подходит):
    sudo mkdir -p /opt/oracle/

    Перемещаем скачанные файлы в /opt/oracle и переходим в папку назначения (допустим что вы скачали «zip архивы» в папку «downloads» Вашего пользователя):
    sudo mv

    /downloads/instantclient-*.zip /opt/oracle/
    cd /opt/oracle/

    Разархивируем все скачанные архивы:
    sudo unzip instantclient-basic-*-*.zip
    sudo unzip instantclient-sdk-*-*.zip
    Если вы скачивали SQL*Plus:
    sudo unzip instantclient-sqlplus-*-*.zip

    В итоге в каталоге /opt/oracle был создан, для Oracle instant client 11.2.0.2.0, каталог instantclient_11_2. Переименуем этот каталог в instantclient (если у вас другая версия/каталог измените команду) и перейдем в него:
    sudo mv instantclient_11_2 instantclient
    cd instantclient

    Далее необходимо создать несколько дополнительных каталогов и символьных ссылок для нормальной работы клиента (обратите внимание на версию и если она у вас другая измените команды):
    sudo ln -s /opt/oracle/instantclient/libclntsh.so.* /opt/oracle/instantclient/libclntsh.so
    sudo ln -s /opt/oracle/instantclient/libocci.so.* /opt/oracle/instantclient/libocci.so
    sudo ln -s /opt/oracle/instantclient/ /opt/oracle/instantclient/lib

    sudo mkdir -p include/oracle/11.2/
    cd include/oracle/11.2/
    sudo ln -s ../../../sdk/include client
    cd —

    sudo mkdir -p lib/oracle/11.2/client
    cd lib/oracle/11.2/client
    sudo ln -s ../../../ lib
    cd —

    Создаем конфигурационный файл, в котором будет указан каталог для поиска библиотек Oracle instant client, и подключаем его:
    echo /opt/oracle/instantclient/ | sudo tee -a /etc/ld.so.conf.d/oracle.conf
    sudo ldconfig

    Так как в Ubuntu нет каталога /usr/include/php, а клиент его все равно ищет создадим символьную ссылку на его эквивалент php5:
    sudo ln -s /usr/include/php5 /usr/include/php

    Устанавливаем OCI8

    После всех наших манипуляций расширение oci8 замечательно устанавливается с помощью команды pecl:
    sudo pecl install oci8
    нас просят ввести путь к Oracle instant client, на что необходимо ответить:
    instantclient,/opt/oracle/instantclient

    Создаём файл подключения расширения:
    echo «; configuration for php oci8 module» | sudo tee /etc/php5/conf.d/oci8.ini
    echo extension=oci8.so | sudo tee -a /etc/php5/conf.d/oci8.ini

    Устанавливаем PDO_OCI

    Для установки PDO_OCI нам сначала необходимо его скачать из репозитория pear.
    Обновим список пакетов pear:
    sudo pecl channel-update pear.php.net

    Скачаем и поместим архив во временную директорию:
    sudo mkdir -p /tmp/pear/download/
    cd /tmp/pear/download/
    sudo pecl download pdo_oci

    Извлечем содержимое архива и перейдем к нему:
    sudo tar xvf PDO_OCI*.tgz
    cd PDO_OCI*

    Здесь нам необходимо скорректировать файл config.m4, так как в нем нет данных о нашей версии Oracle instant client, последние изменения датируются 2005 годом. Запускаем любимый редактор и вносим изменения отмеченные «+» (обратите внимание на версию и если она у вас другая измените строчки):
    sudo vim config.m4

    Далее приведен diff двух файлов:
    ***************
    *** 7,12 ****
    — 7,14 —-
    if test -s «$PDO_OCI_DIR/orainst/unix.rgs»; then
    PDO_OCI_VERSION=`grep ‘»ocommon»‘ $PDO_OCI_DIR/orainst/unix.rgs | sed ‘s/[ ][ ]*/:/g’ | cut -d: -f 6 | cut -c 2-4`
    test -z «$PDO_OCI_VERSION» && PDO_OCI_VERSION=7.3
    + elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
    + PDO_OCI_VERSION=11.2
    elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
    PDO_OCI_VERSION=10.1
    elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
    ***************
    *** 119,124 ****
    — 121,129 —-
    10.2)
    PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
    ;;
    + 11.2)
    + PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
    + ;;
    *)
    AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
    ;;
    ***************

    Подготавливаем окружение для расширения php c помощью команды phpize (обратите внимание на версию, если она у вас другая измените):
    sudo phpize

    Конфигурируем установщик пакета и устанавливаем пакет (обратите внимание на версию, если она у вас другая измените):
    sudo ./configure —with-pdo-oci=instantclient,/opt/oracle/instantclient/,11.2
    sudo make
    sudo make install

    Создаём для него файл подключения:
    echo «; configuration for php PDO_OCI module» | sudo tee /etc/php5/conf.d/pdo_oci.ini
    echo extension=pdo_oci.so | sudo tee -a /etc/php5/conf.d/pdo_oci.ini

    Подводим итоги

    Перезапускаем apache и проверяем наличие установленных расширений:
    sudo /etc/init.d/apache2 restart
    php -m

    Заключение

    Мануал основан на вот этом посте, который был несколько переработан — исправлены ошибки и внесены дополнения.

    Надеюсь, статья будет полезной не только моим коллегам по работе.

    Читают сейчас

    Похожие публикации

    • 25 апреля 2011 в 17:03

    Еще десять тысяч ПК мигрировали на Ubuntu Linux

    Установка Ubuntu Linux с винчестера. Скрипт


    Неприятная особенность Ubuntu Linux для системных администраторов

    Вакансии

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Комментарии 24

    Спасибо за подробную инфу.

    А под Windows, подскажите:
    1) Для разработки стоит ли ставить на свою же машину Standard/Enterprise Edition или она требует много ресурсов и все будет тормозить? (Express не подходит, так как там нет поддержки Java)

    2) Под Windows 7 64bit, если сталкивались, то подойдут ли драйвера Oracle 64 bit? А то я ставил и ничего не вышло, PHP не хотел коннектиться, пока не поставил 32 битные.

    1. Разнице в потреблении ресурсов между Express и Stadndard/Enterprise Edition нет. В Express просто ограничения на кол-во используемых ресурсов для базы.

    2. 32 битные приложения требуют 32 битных драйверов, 64 битные — 64 битных 😉

    1. То есть, S/E Edition позволит мне нормально работать на том же самом компьютере?

    2. Уточните ответ, пожалуйста.

    2. www.viva64.com/ru/l/0002/ — тут подробнее.
    А насчет PHP — в Windows обычно берут бинарные сборки, а в них библиотеки уже собраны под конкретную версию оракловой библиотеки, и с другими версиями оно работать не будет.
    Для 64х битной оракловой библиотеки надо 64х битную версию PHP, а их готовых под Windows на официальном сайте я не видел. Ну и до кучи надо будет еще 64 битную версию Apache или другого веб-сервера.

    Я пока собирал, наткнулся на множество проблем в компиляции и еще много чего.

    В общем я так психовал последний раз когда играл в денди

    Да, Сбер хорошо апгрейднулся в лучшую сторону. Но мой пост был не об этом, а о том, что размер компании — это в первую очередь признак пропиаренности среди гос. контор и крупных заказчиков, но никак не признак качественного технического исполнения. Чем крупней заказчик, тем дальше находится человек, принимающий бизнес решения от технарей, которые «как-нибудь этот бампер да прикрутят».

    Чем больше узнаю про оракл, тем больше он у меня начинает ассоциироваться с коболом и мэйнфреймами. Сугубо по области своего применения/популярности.

    >подойдет для пользователей большинства Linux’ов.

    для пользователей RHEL/CentOS на сайте оракла есть готовые RPM
    ставите instantclient (http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html) и сам пакет с модулем ( oss.oracle.com/projects/php/ )

    The PDO_OCI driver for the PDO extension is not currently included.

    If support is needed, use Zend Server.

    Немного комментариев с моей стороны (правда, я джавист), т.к. я использую оракл на локальной машине уже довольно давно (около 4 лет).

    У нас (под Windows XP x32) используют локальный оракл 10g / 11g Enterprise Edition (standard не подходит из-за отсутствия ряда нужных фич), проблем не наблюдается.

    Типично он потребляет памяти где то 250-300 мегабайт (что меньше чем, например, Google Chrome c тремя десятками вкладок:))), при более интенсисной обработке данных — бывает до 500 метров. Нагрузка на процессор обычно вообще не заметна (может проявится только если у вас много сложной логике в хранимых процедурах, и самих данных много).

    На машинах класса Core2Duo / Quad с 3-4 гигами памяти локальный оракл совершенно не обременителен. На этих же машинах локально еще работают JBoss, Eclipse (и Google Chrome, который по моему ест памяти больше чем все выше перечисленное вместе взятое).

    Типично локальная база занимает мало места сама по себе, т.к. используется локальная база в основном при разработке и локальном тестировании, т.к. данных там обычно немного (в таблицах редко бывает больше чем несколько жалких сот тысяч записей).

    Укажу только несколько мелочей, который имеет смысл помнить при работе с локальной базой (когда вы сами себе DBA), они в общем-то общеизвестны, но о них часто забывают. Итак:

    — Если вы часто и много (миллионы записей и больше) вставляете и удаляете данных из какой-то таблицы (например, тестируете какие-то интеграционные интерфейсы для загрузки данных из CSV / XML или что-то такое), помните о таком понятии, как Table HWM (high water mark). Переодически не забываете делать не просто delete, а truncate. Кроме того, при очень частой вставке / удалении большого количества записей, следите за размером redo-логов и датафайла с UNDO тейблспейсом.

    — Для таблиц, на которые есть активные ссылающиеся внешние ключи из других таблиц, перед тем как можно будет делать truncate, придется пройтись сначала по схеме и отключить все ссылающиеся на таблицу внешние ключи (даже если нет реальных записей, ссылающихся на какие-то данные, сам факт наличия active внешнего ключа не даст сделать truncate).

    — Если не следить на местом на диске, то с течением времени оракл может легко отъесть 30-40 гигабайт на диске, даже если у вас нет схем с большим объемом данных. Для борьбы с этим, из простейших методов, не забывайте стирать старые ненужные схемы (т.е. юзеров), и следить за тейблспейсами. Иногда может потребоваться сделать shrink tablespace самому. Неожиданно много места может съедать UNDO tablespace.

    Если еще какие то типичные вещи вспомню, напишу.

    Хочу изучать PHP и Mysql. С чего начать?

    Информация для начинающих изучать PHP и MySQL
    Для тех, кто хочет изучать PHP, можно посоветовать великолепный «Самоучитель PHP» с сайта PHP5.RU
    Курс находится в процессе написания, но уже сейчас ссылки на отдельные уроки из него стоят в различных разделах этого FAQ. И, поверьте — оно стоит того.
    Не могу не порекомендовать замечательный материал Вадима Ткаченко АКА Bizon-а «Вступление в PHP и MySQL». Он даже издавался отдельной книгой, а сейчас — исправленный и дополненный — размещается на сайте
    «PHP в деталях». Этот ресурс стоит особняком. В отличие от предыдущих, рекомендовать прочесть его целиком может только садист — там слишком много информации. но в этом и его прелесть. Это неисчерпаемый ресурс информации по PHP. Единственное замечание — обращайте внимание на дату написания статьи. Не стоит особо доверять тем, что написаны до 2003 года.
    Ну, и, конечно же — этот сайт, http://phpfaq.ru
    Если вы еще не прочли его целиком — обязательно сделайте это. Здесь перечислены проблемы, с которыми рано или поздно столкнется КАЖДЫЙ, кто пишет на PHP.

    При установке MySQL выбрать Standard configuration, на следующем экране нажать Next, на следующем — задать пароль или снять галочку «Modify security settings», если хотите оставить его пустым.
    Для проверки запустите консоль Mysql: Пуск — Выполнить и в появившуюся строку скопировать
    «C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe»
    или
    «C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe» -uroot -pPASSWORD
    если консоль запустилась — все работает. Наберите exit для выхода и приступайте к конфигурированию поддержки mysql в PHP.
    Для этого, если вы не сделали этого раньше, возьмите файл c:\php\php.ini-development и скопируйте под именем php.ini в каталог windows. Затем отредактируйте его, убрав точку с запятой в начале строки
    ;extension=php_mysql.dll
    и отредактировав параметр extension_dir:
    extension_dir = «c:\php\ext\»
    заодно можно сразу исправить
    short_open_tag = On
    чтобы работали старые скрипты и удобные шаблоны
    и не забудьте после этого перезапустить Апач, как это было описано выше.
    Теперь вы можете использовать mysql в своих php-скриптах.

    Те, для кого эта инструкция слишком сложна, могут попробовать установить готовый комплект Денвер-2.
    В него входит сразу все, что нужно, и еще много ненужного. А главное — работает все само.
    Еще одно достоинство Денвера в том, что объем базового комплекта в 10 раз меньше полных версий — всего 4 мегабайта. А так же то, что его автор пишет интересные книжки по PHP.

    Так же, всем любознательным рекомендуется ВЕСЬМА толковая статья Установка и настройка Apache+PHP
    с сайта PHP5.RU. И, конечно же — разделы официальной документации, посвященные установке соответствующих программ.

    PHP представлен и в русскоязычном сегменте Livejournal
    В сообществах ru_php и ru_mysql всегда найдутся профессионалы, кототорые помогут с любой проблемой. Только не забудьте сначала прочитать правила сообщества!

    Задавая вопрос на форуме, помните:
    Что, скорее всего, с ним уже сталкивалась тыща человек. И подробные ответы можно найти в поиске. Если же, все-таки, вопрос приходится задавать — то описывайте как можно подробнее (только своими словами, а не кодом!), что вы делали, что хотели получить и что получилось в результате, а так же точно копируйте сообщения об ошибках.

    Сайты для начинающих.
    Ранее здесь были размещены ссылки на различные сайты от начинающих для начинающих.
    К сожалению, и так-то не блиставшие качеством материала, они давно заброшены своими авторами и окончательно потеряли актуальность.
    Все, что есть лучшего по теме PHP, перечислено вверху страницы.
    Если вы знаете хороший сайт — напишите о нем в разделе «Обратная связь».

    Oracle / PHP FAQ для новичков

    Владимир Пржиялковский , преподаватель технологий Oracle


    . Он бежит себе в волнах
    На раздутых парусах.

    PHP – простое в употреблении, легкое и бесплатное средство для динамического построения страниц HTML на сервере, перед передачей клиенту в браузер. PHP умеет обращаться в СУБД Oracle, и это делает его хорошим кандидатом для разработки приложений web на основе Oracle малой и средней сложности.

    Введение

    СУБД Oracle, когда против желания фирмы-изготовителя, а когда согласно – в зависимости от направления политических ветров в конкретные периоды времени, – никогда, кроме начального периода своего существования, не была полностью закрытой системой. Например, с момента возникновения движения свободного ПО, разработки, ведущиеся открытым образом («открытыми текстами»), все время держали эту СУБД в зоне своих интересов. Когда некоторые представители такого ПО стали достаточно зрелыми, фирма Oracle, подобно другим крупным фирмам, «легализовала» связь своей СУБД с ними: ОС Linux входит в число стратегических платформ для Oracle, web-сервер Apache входит в состав штатной поставки; там же можно обнаружить следы Perl и Tcl, нашедших себе место во внутреннх процессах установки (OUI) и администрирования (OEM). Эти средства помогают организовать взаимодействие с Oracle вместо средств собственной разработки (например, Developer) или в дополнение к ним.

    PHP принадлежит к числу средств открытого ПО, не самых популярных, но вполне состоявшихся, востребованность которых непрерывно растет (см. http://www.php.net/usage.php). PHP позволяет динамически формировать страницы HTML на сервере web. В этом качестве он занимает нишу, общую с EmbPerl, Mason, Aquaruim (все – свободное ПО) и сервлетами (например, с JavaServer Pages). Сервером web может быть Apache, IIS или же еще несколько разновидностей. Здесь нам важно, что PHP умеет обращаться к СУБД Oracle и что это легкая и простая система.

    Установка PHP

    Дальнейшие примеры будут приведены для связки Windows + Apache. Удобнее всего использовать версию Apache со штатного установочного комплекта СУБД Oracle (в версии Oracle 10.1 – на Companion CD). Дежурное напоминание: для промыщленного использования сервера web лучше все же взять последнюю версию Apache из сети, так как она более функциональна, надежна и защищена.

    Версию PHP можно скачать с узла http://www.php.net/. Там же имеются документация, учебные материалы, форумы и ссылки на ресурсы, в числе которых есть русскоязычные. К примеру, для Windows можно скачать файл php-4.3.6-Win32.zip. Его нужно поместить в каталог, например c:\php, и разархивировать. Далее можно следовать инструкциям в install.txt, однако само ПО PHP уже установлено. В Unix еще потребуется построить библиотеки программой make.

    Правка файла конфигурации PHP

    Найдите файл php.ini. Скорее всего он в каталоге c:\WINNT. Найдите параметр extension_dir и проставьте

    Снимите комментарии со строк

    ;extension=php_oci8.dll
    ;extension=php_oracle.dll
    ;extension=php_dbase.dll

    Последний параметр требуется раскомментарить только если вы намерены проиграть следующий далее пример с записью данных в формате dbf.

    Правка файла конфигурации Apache

    Найдите файл httpd.conf. Скорее всего он в каталоге %ORACLE_HOME%\Apache\Apache\conf. Добавьте строки:

    LoadModule php4_module C:/php/php-4.3.6-Win32/sapi/php4apache.dll
    AddModule mod_php4.c
    AddType application/x-httpd-php .php

    Последний параметр уже присутствует в виде комментария, и для него достаточно просто знак комментария снять.

    Копирование файлов динамических модулей

    В соответствии с указанным в php.ini значением параметра extension_dir скопируем файлы:

    c:
    cd \php\php-4.3.0-Win32
    move php4ts.dll sapi
    move extensions\php_oci8.dll sapi
    move extensions\php_oracle.dll sapi

    Перезапуск Apache и проверка

    Осталось перезапустить Apache. Это можно сделать либо с помощью меню Start, либо через останов и запуск службы Windows. Если все проделано правильно, при запуске не будет ошибок.

    Оракл для начинающих | Oracle for beginners (18+)

    Оракл для начинающих. Советы программистам, администраторам, IT-специалистам, только начинающим изучать СУБД Oracle. Оракл для чайников.

    INNER JOIN vs LEFT RIGHT FULL OUTER JOIN

    Джойны — это запросы, комбинирующие строки из нескольких таблиц, представлений или материализованных представлений, которые перечислены в секции FROM запроса.

    INNER JOIN
    Inner join или просто join возвращает только те строки из двух таблиц, которые удовлетворяют условию указанному в ON:

    SELECT
    s.id,
    s.supplier_name,
    o.order_date
    FROM suppliers s
    INNER JOIN orders o
    ON o.supplier_ >
    OUTER JOIN
    Outer join возвращает все строки, удовлетворяющие условию, указанному в ON, а также некоторые строки, которые не удовлетворяют этому условию:

    • LEFT JOIN — дополнительно возвращает все строки из левой части условия;
    • RIGHT JOIN — дополнительно возвращает все строки из правой части условия;
    • FULL JOIN — дополнительно возвращает все строки из обеих частей условия.

    Поясняющая картинка из статьи на CodeProject:

    Полнотекстовый поиск при помощи Oracle Text

    Oracle Text — это бесплатная компонента, входящая в состав Oracle Database, предназначенная для создания приложений с использованием полнотекстового поиска. В предыдущих версиях Oracle имела также названия ConText и interMedia Text. Начиная с 11ой версии входит во все редакции СУБД.

    Полнотекстовый поиск — поиск документов в базе данных текстов с использованием полнотекстового индекса. Полнотекстовый индекс — это индекс, в котором перечислены все слова, встречающиеся в тексте, и указаны позиции, на которых эти слова встречаются. Полнотекстовый индекс позволяет производить поиск очень быстро, в отличие например от поиска при помощи оператора like. Кроме того, системы полнотекстового поиска обычно включают в себя функционал, расширяющий возможности поиска, например поиск с учетом морфологии языка, синонимов, созвучных слов, с учетом меры близости между словами в запросе и другие.

    Oracle Text позволяет строить полнотекстовые индексы 4-ёх типов:

    • CONTEXT — основной тип индекса. Применяется для индексирования содержимого одной или нескольких колонок таблицы;
    • CTXCAT — применяется для индексации небольших текстовых фрагментов, не требует периодической переиндексации;
    • CTXRULE — применяется при создании приложений для классификации документов;
    • CTXXPATH — предназначен для ускорения работы с полями типа XMLType.

    Рассмотрим пример создания контекстного полнотекстового индекса по таблице документов docs.

    Создадим таблицу документов и наполним ее данными:

    create table docs (id number not null, text varchar2(1000) not null);
    insert into docs values (1, ‘Шла Саша по шоссе и сосала сушку.’);
    insert into docs values (2, ‘London is the capital of The United Kingdom of Great Britain and Northern Ireland.’);

    Создадим настройки для полнотекстового индекса и выполним его построение:

    begin
    ctx_ddl.create_preference(‘my_wordlist’, ‘BASIC_WORDLIST’);
    ctx_ddl.create_preference(‘my_lexer’, ‘AUTO_LEXER’);
    ctx_ddl.set_attribute(‘my_lexer’, ‘INDEX_STEMS’,’YES’);
    end;

    create index docs_idx on docs (text) indextype is ctxsys.context parameters (‘LEXER my_lexer WORDLIST my_wordlist’);

    Тестируем построенный индекс:

    select * from docs where contains(text, ‘саша’) > 0;

    ID TEXT
    1 Шла Саша по шоссе и сосала сушку.

    select * from docs where contains(text, ‘$идти’) > 0;

    ID TEXT
    1 Шла Саша по шоссе и сосала сушку.

    Обратите внимание, что слово ‘идти’ в тексте документов не встречается, но благодаря использованию оператора стемминга $, найден документ, в котором встречается словоформа слова ‘идти’, т.е. слово ‘шла’.

    select * from docs where contains(text, ‘united’) > 0;

    ID TEXT
    2 London is the capital of The United Kingdom of Great Britain and Northern Ireland.

    Мастер Йода рекомендует:  Все 500 самых мощных суперкомпьютеров теперь используют Linux

  • Добавить комментарий