Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA

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;


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

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

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


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru