Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ ORACLE SQL \ JAVA ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


1урок по oracle pl/sql


После установки Oracle Express 11g залогинимся в sqlplus (пароль для sys указывали при установке)

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\Михаил Александрович>sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL>  connect sys/YUOR_PASSWORD as sysdba
Connected.

SQL> exit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - Produ
ction

C:\Users\Михаил Александрович>sqlplus sys/YUOR_PASSWORD as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on 1 16:30:45 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production

SQL>

Примеры кода были мной опробованы в sqldeveloper и Oracle Express 11g

Для включения вывода необходимо прописать в начале:
SET serveroutput ON

Пример 1:

--Необязательный блок "declare", в нем мы объявим переменные, конструкция := присваивает значение:
DECLARE 
  a number;
  b VARCHAR(12) NOT NULL := '1st String';
  c constant number := 12;
BEGIN
  a := 0;
  b := q'[2'nd String]';
  --c := 15; Вызовет ошибку т.к. константа неизменяема
  --Процедура "PUT_LINE" из пакета "DBMS_OUTPUT" служит для вывода на экран:
  DBMS_OUTPUT.PUT_LINE('value of a: ' || a || ' value of b: ' || b);
END;

Пример 2:

--Объявим переменную для вывода данных из запроса
DECLARE    
  V_FIRSTNAME VARCHAR2(50);
  --Переменная столбца подстраивающаяся под тип
  X_FIRSTNAME  HR.EMPLOYEES.first_name%TYPE;
BEGIN

  V_FIRSTNAME := 'Lex';
  
  SELECT  first_name
  INTO    X_FIRSTNAME
  FROM    HR.EMPLOYEES
  WHERE   HR.EMPLOYEES.first_name = V_FIRSTNAME;
  
  DBMS_OUTPUT.PUT_LINE('value of X_FIRSTNAME: ' || X_FIRSTNAME);

END;

Пример 3:

--Вывод данных через REFCURSOR (тип данных, по сути ссылка на курсор, возвращает ссылку на набор данных)
VAR csr REFCURSOR;
DECLARE
  V_FIRSTNAME1 VARCHAR2(30):='Lex';
  V_FIRSTNAME2 VARCHAR2(30):='Shanta';
BEGIN
  OPEN :csr FOR '
  SELECT  first_name
  FROM    HR.EMPLOYEES
  WHERE   HR.EMPLOYEES.first_name = '''||V_FIRSTNAME1||''' OR
  HR.EMPLOYEES.first_name = '''||V_FIRSTNAME2||'''
  ';
END;
/
PRINT :csr

Пример 4:

VARIABLE X_FIRSTNAME VARCHAR2(10)

DECLARE    
  V_FIRSTNAME VARCHAR2(50);
BEGIN
  V_FIRSTNAME := 'Lex';

  SELECT  first_name
  --Пример обращения в анонимном блоке
  INTO    :X_FIRSTNAME
  FROM    HR.EMPLOYEES
  WHERE   HR.EMPLOYEES.first_name = V_FIRSTNAME;
END;
/
print X_FIRSTNAME

--Аналог блока begin - end
exec :X_FIRSTNAME := 'NewValue'

print X_FIRSTNAME

Пример 5:

VARIABLE X_FIRSTNAME VARCHAR2(10)
--Пример с пользовательской переменной
DEFINE V_FIRSTNAME = 'Lex'

BEGIN
  SELECT  first_name
  INTO    :X_FIRSTNAME
  FROM    HR.EMPLOYEES
  --Пример обращения к данной переменной
  WHERE   HR.EMPLOYEES.first_name = '&V_FIRSTNAME';
  
  DBMS_OUTPUT.PUT_LINE('value of X_FIRSTNAME: ' || :X_FIRSTNAME);
END;


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект