Использование языка Рerl

Рефераты, курсовые, дипломные, контрольные (предпросмотр)

Тип: Курсовая работа. Файл: Word (.doc) в архиве zip. Категория: Информатика, IT
Адрес этого реферата http://referat-kursovaya.repetitor.info/?essayId=24707 или
Загрузить
В режиме предпросмотра не отображаются таблицы, графики и иллюстрации. Для получения полной версии нажмите кнопку «Загрузить». Рефераты, контрольные, дипломные, курсовые работы предоставляются в ознакомительных целях, не для плагиата.
Страница 1 из 3 [Всего 3 записей]1 2 3 »

Введение

Perl - интерпретируемый язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информации и выдачи сообщений. Perl также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен, но про него трудно сказать, что он элегантен и компактен. Perl сочитает в себе лучшие черты C, shell, sed и awk, поэтому для тех, кто знаком с ними, изучение Perl-а не представит особого труда. Cинтаксис выражений Perl-а близок к синтаксису C. В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для обработки текстовых файлов, он может обрабатывать так же двоичные данные и создавать .dbm файлы, подобные ассоциативным массивам. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на С или C++ куски кода на Perl-е, а также позволяет осуществлять доступ к базам данных, в том числе Oracle.

Этот язык часто используется для написания CGI-модулей, которые, в свою очередь, могут обращаться к базам данных. Таким образом может осуществляться доступ к базам данных через WWW.

Взаимодействие с СУБД

Perl позволяет осуществлять доступ к различным СУБД. Здесь будет освещен вопрос доступа к СУБД Oracle.

Взаимодействие с Oracle

Основные функции доступа

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

#!/usr/local/bin/perl

use Oraperl;

# подключаем модуль Oraperl

$system_id = 'T:bdhost.com:Base';

$lda = &ora_login($system_id,'scott','tiger');

# вход в систему

$st = 'create table EMP (name varchar2(100),

organization varchar2(100))';

$csr = &ora_open($lda,$st) || die $ora_errstr;

&ora_close($csr);

# создание таблицы в базе данных

$st = 'insert into EMP values

(\'John Smit\', \'NATO\')';

$csr = &ora_open($lda, $st);

&ora_close($csr);

# помещение строки в таблицу

В результате в базе создалась таблица из двух столбцов с одной записью:

Name

Organization

John Smit

NATO

$st = 'select name from EMP

where organization = \'NATO\'';

$csr = &ora_open($lda,$st);

# выбираем из таблицы значения столбца name,

# которым сответствует значение столбца organization

# равное 'NATO'

@result = &ora_fetch($csr);

# помещаем эти значения в массив @result

&ora_close($csr);

print @result;

&ora_logoff($lda);

# выход из системы

Для взаимодействия с Oracle в Perl есть специальный модуль Oraperl.pm. Основными функциями для доступа к базе данных являются:

&ora_login

$lda = &ora_login($system_id,$username,$password)

Для того, чтобы получить доступ к информации, хранимой в Oracle необходимо сначала войти в систему. Это осуществляется вызовом функции &ora_login(). Эта функция имеет три параметра: системный идентификатор базы данных, имя пользователя в базе и пароль пользователя. Возвращается идентификатор регистрации в системе (Oracle Login Data Area). Несколько доступов могут осуществляться одновременно. Эта функция эквивалентна функции OCI(Oracle Call Interface) olon или orlon.

&ora_open

$csr = &ora_open($lda, $statement [,$cache])

Для определения SQL-запроса в базу данных программа должна вызывать функцию &ora_open. Эта функция имеет как минимум два параметра: идентификатор регистрации и SQL выражение. Необязательный третий параметр описывает размер буфера строк для SELECT оператора. Возвращается курсор Oracle. Если третий параметр опущен, то используется стандартный размер буфера.

$csr = &ora_open($lda,'select ename,

sal from emp order by ename',10);

Эта функция эквивалентна функции OCI oopen или oparse.

&ora_bind

&ora_bind($csr, $var, ...)

Если SQL выражение содержит обращение к переменным языка Perl, то необходимо подставить вместо имен значения переменных. Для этого используется функция &ora_bind.

$csr = &ora_open($lda, 'insert into emp values (:1,:2)');

&ora_bind($csr,$ename,$sal);

- подставляет в SQL выражение вместо :1 и :2 значения переменных $ename и $sal.

&ora_fetch

$nfields = &ora_fetch($csr[, trunc]);

@array = &ora_fetch($csr);

Эта функция используется с оператором SQL SELECT для извлечения информации из базы данных и имеет только один обязательный параметр - идентификатор курсора, полученный в результате вызова функции &ora_open. В скалярном контексте она возвращает число выбранных строк, в списковом - массив выбранных строк. Второй необязательный параметр содержит информацию о том, можно ли обрезать данные типов LONG и LONG RAW или выдавать сообщение об ошибке. Если параметр опущен, то информация берется из переменной $ora_trunc. Если произошло обрезание данных, то переменная $ora_errno принимает значение 1406. Эта функция эквивалентна функции OCI ofetch.

&ora_close

&ora_close($csr)

Если открытый курсор не будет больше использоваться, то его нужно закрыть вызовом функции &ora_close. Это эквивалентно функции OCI oclose.

&ora_do

&ora_do($lda,$statement)

Не все SQL-выражения возвращают данные или содержат переменные для подстановки. В таких случаях функция &ora_do выступает в качестве альтернативы &ora_open и &ora_close. Первым параметром является идентификатор регистрации, вторым -- SQL выражение.

&ora_do($lda,'drop table employee');

это эквивалентно:

&ora_close(&ora_open($lda, 'drop table employee'));

&ora_logoff

&ora_logoff($lda)

Для выхода из системы используется функция &ora_logoff. Она эквивалентна функции OCI ologoff.

6.2.1.2 Дополнительные функции

Дополнительные возможности предоставляются функциями

&ora_titles()

&ora_length()

&ora_types()

&ora_autocommit()

&ora_commit()

&ora_rollback()

&ora_version()

&ora_titles

@titles = &ora_titles($csr)

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

&ora_length

@length = &ora_length($csr)

Программа может определить длину каждого из полей, возвращенных запросом, с помощью вызова функции &ora_length. Она имеет только один параметр - курсор и возвращает массив целых чисел.

&ora_types

@types = &ora_types($csr)

Программа может определить тип каждого из полей, возвращенных запросом, с помощью вызова функции &ora_types. Она имеет один параметр - курсор и возвращает массив целых чисел. Эти типы определяются в документации по OCI и в файле oraperl.ph для Oracle v6.

&ora_autocommit

&ora_autocommit($lda,$on_or_off)

Режим автоматического завершения транзакций можно установить или отменить вызовом функции &ora_autocommit. Эта функция имеет два параметра: идентификатор регистрации и булевскую переменную, которая указывает действие, которое нужно выполнить. Если значение переменной ненулевое, то режим включается, если нулевое, то отключается. По умолчанию режим не включен. Режим включается на продолжительность пребывания в системе. Если есть необходимость включать его только для одного оператора, то лучше делать несколько регистраций и использовать для каждого оператора отдельный идентификатор регистрации.

&ora_commit, &ora_rollback

&ora_commit($lda)

&ora_rollback($lda)

Изменения в базе данных могут быть сохранены или отменены вызовом этих функций. Они имеют один параметр - идентификатор регистрации в системе. Транзакции, результат которых уже был сохранен не могут быть отменены &ora_rollback. Эти функции также действуют на все время пребывания в системе, а не на отдельные операторы.

&ora_version

&ora_version()

Эта функция печатает версию и информацию об авторских правах, касающуюся Oraperl. Она не возвращает ничего.

6.2.1.3 Переменные

В модуле Oraperl.pm есть шесть специальных переменных:

$ora_cache

$ora_long

$ora_trunc

$ora_errno

$ora_errstr

$ora_verno

Эти переменные используются для определения поведения Oraperl в определенных условиях.

$ora_cache Эта переменная определяет размер буфера для функции &ora_open() и SELECT-выражения, если точный размер буфера не указан. Как правило устанавливается размер буфера равный пяти. Присваивание этой переменной значения, равного нулю, устанавливает значение этой переменной равным первоначальному значению. Присваивание отрицательной величины приводит к ошибке.

RSSСтраница 1 из 3 [Всего 3 записей]1 2 3 »


При любом использовании материалов сайта обязательна гиперссылка на сайт «Репетитор».
Разработка и Дизайн компании Awelan
www.megastock.ru
Проверить аттестат