oracle rdbms workshop (part1)

Post on 11-Apr-2017

240 Views

Category:

Data & Analytics

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Taras LyuklyanchukMay 8, 2015

Oracle RDBMS Workshop, Part 1

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

Supported Platforms

Instance Architecture

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

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

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

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

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

журналов

SGA

LGWR

DBWR

PMON

SMON SNPn LCKn RECO Snnn Dnnn

Pnnn

CKPT

ARCH

Oracle Database Clustering

Oracle Database Listener

Oracle Database Client Software

JDBC Driver Oracle Client (Fat)

JDBCTHIN

JDBC OCI

OCIlibrary ODBC

Instant Client

ODBCOCI

SQLPLUS Utility

Transparent Network Substrate

TNSNAMES.ORA

SCHEMA == USER + HIS OBJECT

Transactions: BEGIN

Transactions: COMMIT

Transactions: ROLLBACK

What is DUAL?

Using DUAL Table

ANSI SQL JOIN

Oracle SQL JOIN

Sequences

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?

PL/SQL Engine

PL/SQL block

PL/SQL Object Types

FUNCTION Функция

PROCEDURE Процедура

TRIGGER Триггер

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

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

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

TYPE BODY Тело типа

Procedures & Functions

PL/SQL Packages

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

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(); …

Java Application in Database

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;/

Thank you

top related