Oracle RDBMS Workshop (Part1)
-
Upload
taras-lyuklyanchuk -
Category
Data & Analytics
-
view
241 -
download
1
Transcript of Oracle RDBMS Workshop (Part1)
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