oracle rdbms workshop (part1)

30
Taras Lyuklyanchuk May 8, 2015 Oracle RDBMS Workshop, Part 1

Upload: taras-lyuklyanchuk

Post on 11-Apr-2017

240 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Oracle RDBMS Workshop (Part1)

Taras LyuklyanchukMay 8, 2015

Oracle RDBMS Workshop, Part 1

Page 2: Oracle RDBMS Workshop (Part1)

1977

SDL

Lab

1979

Rel

ation

al S

oftw

are,

Inc.

19

80 O

racl

e 2

1982

Ora

cle

Syst

ems

1983

Ora

cle

319

84 O

racl

e 4

1985

Ora

cle

519

86 O

racl

e 5.

119

88 O

racl

e 6.

PL/

SQL

1989

Ora

cle

6.2

1992

Ora

cle

719

94 O

racl

e 7.

119

96 O

racl

e 7.

319

97 O

racl

e 8

1998

Ora

cle

8.1

1999

Ora

cle

8.2

2000

Ora

cle

8.3

2001

Ora

cle

920

04 O

racl

e 10

.120

05 O

racl

e 10

.220

07 O

racl

e 11

.120

09 O

racl

e 11

.220

13 O

racl

e 12

.1

Oracle Database Evolution

Page 3: Oracle RDBMS Workshop (Part1)

Supported Platforms

Page 4: Oracle RDBMS Workshop (Part1)

Instance Architecture

Управляющие файлы Файлы журналовФайлы данных

Серверные процессы

Процессы пользователей

Разделяемый пул

Кэш буферов БДБуфер

журналов

SGA

LGWR

DBWR

PMON

SMON SNPn LCKn RECO Snnn Dnnn

Pnnn

CKPT

ARCH

Page 5: Oracle RDBMS Workshop (Part1)

Oracle Database Clustering

Page 6: Oracle RDBMS Workshop (Part1)

Oracle Database Listener

Page 7: Oracle RDBMS Workshop (Part1)

Oracle Database Client Software

JDBC Driver Oracle Client (Fat)

JDBCTHIN

JDBC OCI

OCIlibrary ODBC

Instant Client

ODBCOCI

Page 8: Oracle RDBMS Workshop (Part1)

SQLPLUS Utility

Page 9: Oracle RDBMS Workshop (Part1)

Transparent Network Substrate

Page 10: Oracle RDBMS Workshop (Part1)

TNSNAMES.ORA

Page 11: Oracle RDBMS Workshop (Part1)

SCHEMA == USER + HIS OBJECT

Page 12: Oracle RDBMS Workshop (Part1)

Transactions: BEGIN

Page 13: Oracle RDBMS Workshop (Part1)

Transactions: COMMIT

Page 14: Oracle RDBMS Workshop (Part1)

Transactions: ROLLBACK

Page 15: Oracle RDBMS Workshop (Part1)

What is DUAL?

Page 16: Oracle RDBMS Workshop (Part1)

Using DUAL Table

Page 17: Oracle RDBMS Workshop (Part1)

ANSI SQL JOIN

Page 18: Oracle RDBMS Workshop (Part1)

Oracle SQL JOIN

Page 19: Oracle RDBMS Workshop (Part1)

Sequences

Page 20: Oracle RDBMS Workshop (Part1)

begin if (null = null) then dbms_output.put_line('null == null'); end if;

if (null != null) then dbms_output.put_line('null != null'); end if;

if (null is null) then dbms_output.put_line('null is null'); end if;

if ('' is null) then dbms_output.put_line('empty string is null'); end if;

end;

null is nullempty string is null

What is NULL?

Page 21: Oracle RDBMS Workshop (Part1)

PL/SQL Engine

Page 22: Oracle RDBMS Workshop (Part1)

PL/SQL block

Page 23: Oracle RDBMS Workshop (Part1)

PL/SQL Object Types

FUNCTION Функция

PROCEDURE Процедура

TRIGGER Триггер

PACKAGE Заголовок пакета

PACKAGE BODY Тело пакета

TYPE Заголовок типа

TYPE BODY Тело типа

Page 24: Oracle RDBMS Workshop (Part1)

Procedures & Functions

Page 25: Oracle RDBMS Workshop (Part1)

PL/SQL Packages

Page 26: Oracle RDBMS Workshop (Part1)

create or replace type t_soap as object( debug integer, timeout integer, httpcode integer, envelope xmltype, response xmltype, hdrx xmltype, reqx xmltype, hdrp t_param_list, reqp t_param_list, constructor function t_soap(p_ws_url varchar2, p_ws_ns varchar2, p_ws_method varchar2, p_timeout integer default 30, p_username varchar2 default null, p_password varchar2 default null, p_persistent integer default 0) return self as result,

create or replace type body t_soap as constructor function t_soap(p_ws_url varchar2, p_ws_ns varchar2, p_ws_method varchar2, p_timeout integer default 30, p_username varchar2 default null, p_password varchar2 default null, p_persistent integer default 0) return self as result as begin self.debug := 0; self.http_ok := utl_http.HTTP_OK; self.http_method := 'POST'; self.http_charset := 'UTF-8'; self.xml_charset := 'UTF8'; self.ws_ns := p_ws_ns; self.ws_url := p_ws_url; self.ws_method := p_ws_method; self.hdrp := t_param_list(); self.reqp := t_param_list(); self.timeout := p_timeout; self.username := p_username; self.password := p_password; self.persistent := p_persistent; self.build(); return; end;

Type – same as class in OOP

Page 27: Oracle RDBMS Workshop (Part1)

Create type instance declare soap t_soap; begin -- SOAP-конверт soap := t_soap(p_ws_ns => OMS_NS, p_ws_url => OMS_URL, p_ws_method => 'Request', p_persistent => OMS_PERSISTENT); -- заголовки soap.set_header('User', OMS_USER); soap.set_header('Pwd', OMS_PASSWORD); -- запрос soap.set_request(dbms_xmldom.getxmltype(doc)); -- вызываем soap.invoke(); …

Page 28: Oracle RDBMS Workshop (Part1)

Java Application in Database

Page 29: Oracle RDBMS Workshop (Part1)

Java Class Demo

/* JDelete.java */import java.io.File; public class JDelete { public static int delete (String fileName) { File myFile = new File (fileName); boolean retval = myFile.delete(); if (retval) return 1; else return 0; }}

CREATE OR REPLACE FUNCTION fdelete ( file IN VARCHAR2) RETURN NUMBERAS LANGUAGE JAVA NAME 'JDelete.delete ( java.lang.String) return int';/

begin fdelete('c:\temp\test.tmp');end;/

Page 30: Oracle RDBMS Workshop (Part1)

Thank you