🗊Презентация Явные курсоры (PL/SQL)

Категория: Информатика
Нажмите для полного просмотра!
Явные курсоры (PL/SQL), слайд №1Явные курсоры (PL/SQL), слайд №2Явные курсоры (PL/SQL), слайд №3Явные курсоры (PL/SQL), слайд №4Явные курсоры (PL/SQL), слайд №5Явные курсоры (PL/SQL), слайд №6Явные курсоры (PL/SQL), слайд №7Явные курсоры (PL/SQL), слайд №8Явные курсоры (PL/SQL), слайд №9Явные курсоры (PL/SQL), слайд №10Явные курсоры (PL/SQL), слайд №11Явные курсоры (PL/SQL), слайд №12Явные курсоры (PL/SQL), слайд №13Явные курсоры (PL/SQL), слайд №14Явные курсоры (PL/SQL), слайд №15Явные курсоры (PL/SQL), слайд №16Явные курсоры (PL/SQL), слайд №17Явные курсоры (PL/SQL), слайд №18Явные курсоры (PL/SQL), слайд №19Явные курсоры (PL/SQL), слайд №20Явные курсоры (PL/SQL), слайд №21Явные курсоры (PL/SQL), слайд №22Явные курсоры (PL/SQL), слайд №23Явные курсоры (PL/SQL), слайд №24

Вы можете ознакомиться и скачать презентацию на тему Явные курсоры (PL/SQL). Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Явные курсоры
Описание слайда:
Явные курсоры

Слайд 2





При выполнении команды SQL из PL/SQL РСУБД Oracle назначает ей приватную рабочую область, а некоторые данные записывает в системную глобальную область (SGA, System Global Area). В приватной рабочей области содержится информация о команде SQL и набор данных, возвращаемых или обрабатываемых этой командой.  
При выполнении команды SQL из PL/SQL РСУБД Oracle назначает ей приватную рабочую область, а некоторые данные записывает в системную глобальную область (SGA, System Global Area). В приватной рабочей области содержится информация о команде SQL и набор данных, возвращаемых или обрабатываемых этой командой.  
Таким образом любая инструкция SQL, выполняемая Oracle server имеет индивидуальный курсор с ней ассоциированный . Курсор проще всего представить себе как указатель на виртуальную таблицу в базе данных с данными определяемыми SQL командой.
Имеются два типа курсоров:
Неявные курсоры: объявленные в PL/SQL неявно. Курсор этого типа называется неявным, поскольку Oracle автоматически выполняет многие связанные с ним операции, такие как открытие, выборка данных и даже закрытие.
Явные курсоры: объявленные и названные разработчиком. Это SELECT, явно определенный в программе как курсор. Все операции с явным курсором (открытие, выборка данных, закрытие и т. д.) в программе должны выполняться явно. Как правило, явные курсоры используются для выборки из базы данных набора строк с использованием SQL.
Описание слайда:
При выполнении команды SQL из PL/SQL РСУБД Oracle назначает ей приватную рабочую область, а некоторые данные записывает в системную глобальную область (SGA, System Global Area). В приватной рабочей области содержится информация о команде SQL и набор данных, возвращаемых или обрабатываемых этой командой. При выполнении команды SQL из PL/SQL РСУБД Oracle назначает ей приватную рабочую область, а некоторые данные записывает в системную глобальную область (SGA, System Global Area). В приватной рабочей области содержится информация о команде SQL и набор данных, возвращаемых или обрабатываемых этой командой. Таким образом любая инструкция SQL, выполняемая Oracle server имеет индивидуальный курсор с ней ассоциированный . Курсор проще всего представить себе как указатель на виртуальную таблицу в базе данных с данными определяемыми SQL командой. Имеются два типа курсоров: Неявные курсоры: объявленные в PL/SQL неявно. Курсор этого типа называется неявным, поскольку Oracle автоматически выполняет многие связанные с ним операции, такие как открытие, выборка данных и даже закрытие. Явные курсоры: объявленные и названные разработчиком. Это SELECT, явно определенный в программе как курсор. Все операции с явным курсором (открытие, выборка данных, закрытие и т. д.) в программе должны выполняться явно. Как правило, явные курсоры используются для выборки из базы данных набора строк с использованием SQL.

Слайд 3






Объявление связывает таблицу SELECT 
с курсором. 
Объявленный курсор можно открыть.
Далее из него можно выбирать строки. 
Завершив работу с курсором, его следует закрыть.
C курсором можно связать  любую команду SELECT. 
Курсор действует как указатель на эти строки выборки 
Атрибут курсора  имеет форму %имя_атрибута , добавляется к имени курсора . Это что-то вроде внутренней переменной Oracle, возвращающей информацию о состоянии курсора — например о том, открыт ли курсор, или сколько строк из курсора вернул запрос. У явных и неявных курсоров и SQL в атрибутах курсоров существуют различия
Описание слайда:
Объявление связывает таблицу SELECT с курсором. Объявленный курсор можно открыть. Далее из него можно выбирать строки. Завершив работу с курсором, его следует закрыть. C курсором можно связать любую команду SELECT. Курсор действует как указатель на эти строки выборки Атрибут курсора имеет форму %имя_атрибута , добавляется к имени курсора . Это что-то вроде внутренней переменной Oracle, возвращающей информацию о состоянии курсора — например о том, открыт ли курсор, или сколько строк из курсора вернул запрос. У явных и неявных курсоров и SQL в атрибутах курсоров существуют различия

Слайд 4


Явные курсоры (PL/SQL), слайд №4
Описание слайда:

Слайд 5


Явные курсоры (PL/SQL), слайд №5
Описание слайда:

Слайд 6





При описании курсора фраза INTO не включается.
При описании курсора фраза INTO не включается.
Для обработки строк в требуемой последовательности, используется предложение ORDER BY в запросе.
Описание слайда:
При описании курсора фраза INTO не включается. При описании курсора фраза INTO не включается. Для обработки строк в требуемой последовательности, используется предложение ORDER BY в запросе.

Слайд 7






DECLARE
	CURSOR emp_cursor IS
		SELECT empno, ename 	FROM emp;
	CURSOR dept_cursor IS
		SELECT * FROM dept WHERE deptno = 10;
BEGIN
...
Описание слайда:
DECLARE CURSOR emp_cursor IS SELECT empno, ename FROM emp; CURSOR dept_cursor IS SELECT * FROM dept WHERE deptno = 10; BEGIN ...

Слайд 8






  OPEN cursor_name;
При открытии курсора, выполняется запрос и выделяется
	активный набор.
Атрибуты курсора используются для контроля выборки.
Описание слайда:
OPEN cursor_name; При открытии курсора, выполняется запрос и выделяется активный набор. Атрибуты курсора используются для контроля выборки.

Слайд 9





Выборка текущей строки осуществляется в переменные.
Выборка текущей строки осуществляется в переменные.
Должно быть то же самое число переменных, что и количество полей в запросе SELECT.
Каждая переменная должна соответствовать каждому выбираемому столбцу.
Должна быть обеспечена проверка на наличие записей в курсоре.
Описание слайда:
Выборка текущей строки осуществляется в переменные. Выборка текущей строки осуществляется в переменные. Должно быть то же самое число переменных, что и количество полей в запросе SELECT. Каждая переменная должна соответствовать каждому выбираемому столбцу. Должна быть обеспечена проверка на наличие записей в курсоре.

Слайд 10





DECALRE
DECALRE
	CURSOR emp_cursor IS
		SELECT empno, ename 	FROM emp;
	v_empno NUMBER(6,0);
	v_ename VARCHAR2(20);
BEGIN
	OPEN emp_cursor
	LOOP
		FETCH emp_cursor INTO v_empno, v_ename;
		EXIT WHEN ... ;
	...
	END LOOP;
 ...
END;
Описание слайда:
DECALRE DECALRE CURSOR emp_cursor IS SELECT empno, ename FROM emp; v_empno NUMBER(6,0); v_ename VARCHAR2(20); BEGIN OPEN emp_cursor LOOP FETCH emp_cursor INTO v_empno, v_ename; EXIT WHEN ... ; ... END LOOP; ... END;

Слайд 11





Курсор закрывается после завершения процесса выборки строк.
Курсор закрывается после завершения процесса выборки строк.
Возможно повторное открытие, если требуется.
Данные не доступны для выбора после того, как курсор закрыт.
Описание слайда:
Курсор закрывается после завершения процесса выборки строк. Курсор закрывается после завершения процесса выборки строк. Возможно повторное открытие, если требуется. Данные не доступны для выбора после того, как курсор закрыт.

Слайд 12





...
...
OPEN emp_cursor
	FOR i IN 1..10 LOOP
		FETCH emp_cursor INTO v_empno, v_ename;
	...
	END LOOP;
CLOSE emp_cursor;
...
Описание слайда:
... ... OPEN emp_cursor FOR i IN 1..10 LOOP FETCH emp_cursor INTO v_empno, v_ename; ... END LOOP; CLOSE emp_cursor; ...

Слайд 13


Явные курсоры (PL/SQL), слайд №13
Описание слайда:

Слайд 14


Явные курсоры (PL/SQL), слайд №14
Описание слайда:

Слайд 15





Строки выбираются только в том случае, если курсор открыт.
Строки выбираются только в том случае, если курсор открыт.
%ISOPEN атрибут используется для проверки состояния открытого курсора (TRUE/FALSE).
	IF NOT emp_cursor%ISOPEN THEN
		OPEN emp_cursor;
	END IF;
	LOOP
		FETCH emp_cursor...
Описание слайда:
Строки выбираются только в том случае, если курсор открыт. Строки выбираются только в том случае, если курсор открыт. %ISOPEN атрибут используется для проверки состояния открытого курсора (TRUE/FALSE). IF NOT emp_cursor%ISOPEN THEN OPEN emp_cursor; END IF; LOOP FETCH emp_cursor...

Слайд 16





Обрабатывается несколько строк явного курсора, используя цикл.
Обрабатывается несколько строк явного курсора, используя цикл.
Выборка записей с каждой итерацией.
Использование атрибута %NOTFOUND для определения невыполненной выборки.
Использование атрибутов явного курсора для определения состояния нормальной выборки данных.
Описание слайда:
Обрабатывается несколько строк явного курсора, используя цикл. Обрабатывается несколько строк явного курсора, используя цикл. Выборка записей с каждой итерацией. Использование атрибута %NOTFOUND для определения невыполненной выборки. Использование атрибутов явного курсора для определения состояния нормальной выборки данных.

Слайд 17





Атрибут %ROWCOUNT используется для подсчета числа строк, выбранных курсором.
Атрибут %ROWCOUNT используется для подсчета числа строк, выбранных курсором.
Атрибут %NOTFOUND используется для определения момента выхода из цикла (при отсутствии записей в курсоре).
Описание слайда:
Атрибут %ROWCOUNT используется для подсчета числа строк, выбранных курсором. Атрибут %ROWCOUNT используется для подсчета числа строк, выбранных курсором. Атрибут %NOTFOUND используется для определения момента выхода из цикла (при отсутствии записей в курсоре).

Слайд 18





...
...
OPEN emp_cursor;
LOOP
	FETCH emp_cursor INTO v_empno, v_ename;
		EXIT WHEN emp_cursor%ROWCOUNT > 10 
				OR
				emp_cursor%NOTFOUND;
...
END LOOP;
CLOSE emp_cursor;
Описание слайда:
... ... OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_empno, v_ename; EXIT WHEN emp_cursor%ROWCOUNT > 10 OR emp_cursor%NOTFOUND; ... END LOOP; CLOSE emp_cursor;

Слайд 19





Выборка записей из курсора в курсорную переменную:
Выборка записей из курсора в курсорную переменную:
DECLARE
	CURSOR emp_cursor IS 
				SELECT empno, ename FROM emp;
	emp_record emp_cursor%ROWTYPE;
BEGIN
	OPEN emp_cursor;
	LOOP
	FETCH emp_cursor INTO emp_record;
...
Описание слайда:
Выборка записей из курсора в курсорную переменную: Выборка записей из курсора в курсорную переменную: DECLARE CURSOR emp_cursor IS SELECT empno, ename FROM emp; emp_record emp_cursor%ROWTYPE; BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO emp_record; ...

Слайд 20





	FOR record_name IN cursor_name LOOP
	FOR record_name IN cursor_name LOOP
		statement1;
		statement2;
		...
	END LOOP;
Описание слайда:
FOR record_name IN cursor_name LOOP FOR record_name IN cursor_name LOOP statement1; statement2; ... END LOOP;

Слайд 21





DECLARE
DECLARE
	CURSOR emp_cursor IS 
		SELECT ename, dept FROM emp;
BEGIN
	FOR emp_record IN emp_cursor 
		LOOP 		--неявное открытие курсора и выборка
			IF emp_record.deptno = 30 THEN
			...
		END LOOP; --неявное закрытие курсора
END;
Описание слайда:
DECLARE DECLARE CURSOR emp_cursor IS SELECT ename, dept FROM emp; BEGIN FOR emp_record IN emp_cursor LOOP --неявное открытие курсора и выборка IF emp_record.deptno = 30 THEN ... END LOOP; --неявное закрытие курсора END;

Слайд 22





DECLARE
DECLARE
-- ничего не надо объявлять
BEGIN
 FOR emp_record IN (SELECT ename, deptno FROM emp)
	LOOP
		IF emp_record.deptno = 30 THEN
		...
	END LOOP;
END;
Описание слайда:
DECLARE DECLARE -- ничего не надо объявлять BEGIN FOR emp_record IN (SELECT ename, deptno FROM emp) LOOP IF emp_record.deptno = 30 THEN ... END LOOP; END;

Слайд 23





Итоги
Курсоры
Явные
Неявные 
Управление явными курсорами
Использование атрибутов курсора
Цикл For для курсора
Описание слайда:
Итоги Курсоры Явные Неявные Управление явными курсорами Использование атрибутов курсора Цикл For для курсора

Слайд 24





Практика №6!
40 минут
Описание слайда:
Практика №6! 40 минут



Похожие презентации
Mypresentation.ru
Загрузить презентацию