Manuali Gratis >
Database >
Oracle
Manuale
Oracle Database 10g programmazione PL/SQL
Editore: Mc Graw Hill
Pagine: 764
Autore: Urman Scott ; Hardman Ron ; McLaughlin Michael
Collana: Oracle Press
Acquistalo a prezzo scontato:
|
Data Pubblicazione: 2005-10-01
ISBN: 8838644357
Prezzo: 59.00 €
Lingua: Italiano
|
Quarta di copertina
Il PL/Sql è il linguaggio di programmazione nativo per le basi dati Oracle. La padronanza di questo linguaggio è quindi necessaria a chiunque debba realizzare delle applicazioni in ambiente Oracle, sia che si tratti di applicazioni gestionali che di Data Warehouse.
Anche coloro che utilizzano gli strumenti di programmazione visuale di Oracle non possono esimersi dal conoscerlo, perché prima o poi dovranno "fare i conti" con il codice che lo strumento ha generato. Il volume fornisce una preparazione completa in tale linguaggio, senza trascurare le strutture Oracle che ne forniscono il contesto.
Vengono analizzati numerosi esempi applicativi, dai più semplici ad i più complessi, tratti da progetti reali.
Pl/Sql è un'estensione Oracle all'Sql (Structured Query Language) che consente la realizzazione di procedure e supera alcuni limiti di Sql. Al termine del volume il lettore avrà appreso le conoscenze necessarie per poter scrivere blocchi procedurali PL/SQL sul database server.
Indice
Indice
Introduzione XV
Parte Prima INTRODUZIONE 1
Capitolo 1 Introduzione a PL/SQL 3
1.1 Introduzione ai linguaggi di programmazione 3
Nota ai programmatori principianti 4
1.2 PL/Cosa? 5
Structured Query Language (SQL) 5
Panoramica sui database relazionali 6
PL/SQL ed SQL 8
PL/SQL e Java 10
Storia e caratteristiche di PL/SQL 11
1.3 Basi del linguaggio 14
Blocchi anonimi 14
Procedure 14
Funzioni 15
Package 15
Tipi di oggetti 15
1.4 Elaborazione di dichiarazioni PL/SQL 16
Interpretato 16
Compilazione nativa 16
1.5 Come sfruttare al meglio il presente volume 16
Pubblico 17
Obiettivo 17
Ambito 17
Requisiti 18
Convenzioni 18
Esempi 19
1.6 Sommario 20
Capitolo 2 Utilizzo di SQL*Plus e JDeveloper 21
2.1 SQL*Plus 22
Connessione all’istanza 22
Controllo della connessione 23
Utilizzo di SQL*Plus 25
Modifica delle impostazioni di sessione SQL*Plus 28
Esecuzione di uno script da un file 28
Output su schermo con SQL*Plus e PL/SQL 29
2.2 JDeveloper 30
Installazione di JDeveloper 31
Lavorare con PL/SQL in JDeveloper 33
2.3 Sommario 37
Capitolo 3 Fondamenti di PL/SQL 39
3.1 Il blocco PL/SQL 39
Struttura fondamentale 40
Blocchi anonimi 42
Blocchi con nome 45
Blocchi annidati 54
Trigger 55
Tipi oggetto 56
3.2 Regole e convenzioni del linguaggio 57
Unità lessicali 57
3.3 Tipi di dati PL/SQL 68
Scalari 68
Carattere/stringa 69
Tipo di dati NUMBER 71
Booleano 73
Data/ora 74
Composti 77
Riferimenti 77
3.4 Utilizzo di variabili 79
%TYPE 80
%ROWTYPE 80
Ambito delle variabili 81
Variabili bind 83
Nascondere codice 87
3.5 Espressioni 89
Operatore di assegnazione 90
Operatore di concatenamento 91
3.6 Controllo del flusso di programma 92
Valutazione condizionale 92
Esecuzione circolare 99
Navigazione sequenziale con GOTO 102
3.7 Sommario 104
Capitolo 4 Utilizzo di SQL con PL/SQL 105
4.1 Elaborazione di transazioni 105
Transazioni e blocchi 106
Transazioni autonome 111
Set Transaction 115
4.2 Recupero di dati 116
Dichiarazione SQL SELECT 116
Corrispondenza di schemi 120
Recupero di informazioni 124
4.3 Cursori 127
Funzionamento dei cursori 128
Cursori espliciti 131
Cursori impliciti 137
Variabili cursore 138
Subquery di cursore 140
Cursori aperti 141
4.4 DML e DDL 142
Precompilazione 143
Manipolazione di dati con DML 143
Introduzione a Dynamic SQL 147
4.5 Utilizzo di ROWID e ROWNUM 149
ROWID 149
ROWNUM 152
4.6 Funzioni SQL incorporate 155
Funzioni carattere 155
Funzioni numeriche 155
Funzioni data 156
Funzioni di conversione 157
Funzioni di errore 159
Altre funzioni 159
4.7 Sommario 160
Capitolo 5 Record 161
5.1 Introduzione ai record 161
Cos’è un record? 161
Lavoro con i record 162
Definizione di tipi record 162
Definizione e utilizzo di tipi record come parametri formali 176
Definizione e utilizzo di tipi oggetto come parametri 179
Restituzione di tipi record da funzioni 182
Definizione e utilizzo di tipi record come valori restituiti 182
Definizione e utilizzo di tipi oggetto come valori restituiti 184
Verifica del lavoro con tipi record 187
5.2 Sommario 188
Capitolo 6 Collection 189
6.1 Introduzione alle collection 189
Cos’è una collection? 190
6.2 Lavorare con collection 190
Lavorare con varray 192
Lavorare con tabelle annidate 211
Lavorare con array associativi 233
6.3 API Collection di Oracle 10g 252
Metodo COUNT 255
Metodo DELETE 255
Metodo EXISTS 258
Metodo EXTEND 260
Metodo FIRST 262
Metodo LAST 263
Metodo LIMIT 264
Metodo NEXT 266
Metodo PRIOR 266
Metodo TRIM 266
6.4 Sommario 268
Capitolo 7 Gestione di errori 269
7.1 Cos’è un’eccezione? 269
Dichiarazione di eccezioni 271
Sollevamento di eccezioni 273
Gestione di eccezioni 275
Il pragma EXCEPTION_INIT 282
Utilizzo di RAISE_APPLICATION_ERROR 282
7.2 Propagazione di eccezioni 286
Eccezioni sollevate nella sezione eseguibile 286
Eccezioni sollevate nella sezione di dichiarazione 289
Eccezioni sollevate nella sezione di eccezione 290
7.3 Linee guida per le eccezioni 293
Ambito delle eccezioni 293
Evitare eccezioni non gestite 294
Mascherare la posizione dell’errore 295
Eccezioni e transazioni 296
7.4 Sommario 297
Capitolo 8 Creazione di procedure, funzioni e package 299
8.1 Procedure e funzioni 299
Creazione di sottoprogrammi 300
Parametri di sottoprogramma 305
La dichiarazione CALL 324
Procedure e funzioni 327
8.2 Package 327
Specifica di package 327
Corpo del package 329
Package e ambito 331
Sovraccarico di sottoprogrammi in package 333
Inizializzazione di package 337
8.3 Sommario 339
Capitolo 9 Utilizzo di procedure, funzioni e package 341
9.1 Locazione dei sottoprogrammi 341
Sottoprogrammi memorizzati e dizionario di dati 341
Sottoprogrammi locali 345
Sottoprogrammi memorizzati e locali 351
9.2 Considerazioni su sottoprogrammi memorizzati e package 352
Dipendenze di sottoprogramma 352
Stato run-time di package 364
Privilegi e sottoprogrammi memorizzati 369
9.3 Funzioni memorizzate e dichiarazioni SQL 379
Funzioni con valore singolo 380
Funzioni con valori multipli 389
9.4 Compilazione nativa 393
9.5 Blocco nel pool condiviso 394
KEEP 394
UNKEEP 394
SIZES 395
ABORTED_REQUEST_THRESHOLD 395
Il wrapper PL/SQL 396
9.6 Sommario 396
Capitolo 10 Trigger di database 397
10.1 Tipi di trigger 397
Trigger DML 398
Trigger instead-of 399
Trigger di sistema 401
10.2 Creazione di trigger 402
Creazione di trigger DML 402
Creazione di trigger instead-of 413
Creazione di trigger di sistema 420
Altre questioni sui trigger 427
Trigger e dizionario di dati 433
10.3 Tabelle mutanti 435
Esempio di tabella mutante 438
Soluzione per l’errore di tabella mutante 439
10.4 Sommario 442
Parte Seconda FUNZIONALITA’ PL/SQL AVANZATE 443
Capitolo 11 Comunicazione intersessione 445
11.1 Introduzione alla comunicazione intersessione 445
Necessità di strutture permanenti o semipermanenti 446
Senza necessità di strutture permanenti o semipermanenti 446
11.2 Il package incorporato DBMS_PIPE 447
Introduzione al package DBMS_PIPE 448
Definizione del package DBMS_PIPE 450
Lavorare con il package DBMS_PIPE 455
11.3 Il package incorporato DBMS_ALERT 474
Introduzione al package DBMS_ALERT 474
Definizione del package DBMS_ALERT 475
Lavorare con il package DBMS_ALERT 476
11.4 Sommario 483
Capitolo 12 Routine esterne 485
12.1 Introduzione alle procedure esterne 485
12.2 Lavorare con procedure esterne 486
Definizione dell’architettura extproc 486
Definizione della configurazione extproc Oracle Net Services 489
Definizione dell’agente di procedura esterna multithread 497
Lavorare con una libreria condivisa C 500
Lavorare con una libreria condivisa Java 508
12.3 Risoluzione di problemi per la libreria condivisa 515
Configurazione del rilevatore o dell’ambiente 515
Configurazione della libreria condivisa o del wrapper di libreria PL/SQL 519
12.4 Sommario 520
Capitolo 13 SQL dinamico 521
13.1 Introduzione a SQL dinamico 522
13.2 Lavorare con SQL dinamico nativo 523
Lavorare con DDL e DML senza variabili bind 525
Lavorare con DML e un elenco di variabili bind note 533
Lavorare con DQL 536
13.3 Lavorare con il package incorporato Oracle DBMS_SQL 543
Lavorare con DDL e DML senza variabili bind 549
Lavorare con DML e un elenco noto di variabili bind 553
Lavorare con DQL 560
13.4 Sommario 563
Capitolo 14 Introduzione agli oggetti 565
14.1 Introduzione alla programmazione a oggetti 565
Dati e astrazione procedurale 566
14.2 Panoramica sui tipi oggetto 567
14.3 Creazione di tipi oggetto 568
Corpo di tipo oggetto 575
14.4 Ereditarietà di tipi oggetto 581
Dispatch dinamico di metodo 589
14.5 Concatenamento di attributi 591
14.6 Effettuazione di modifiche 594
Evoluzione di tipo 594
14.7 Sommario 600
Capitolo 15 Oggetti nel database 601
15.1 Introduzione agli oggetti nel database 601
Tabelle oggetto 602
Oggetti colonna 609
Viste oggetto 610
15.2 Accesso a oggetti persistenti con SQL e PL/SQL 612
Tabelle oggetto 612
Accesso a oggetti colonna 616
Accesso a viste oggetto 618
Funzioni e operatori relativi a oggetti 620
15.3 Manutenzione di oggetti persistenti 631
Evoluzione di tipo 632
15.4 Sommario 635
Capitolo 16 LOB 637
16.1 Introduzione ai LOB 637
Confronto di caratteristiche 638
Tipi di LOB 638
Struttura di LOB 642
Memorizzazione di LOB interni 643
Memorizzazione di LOB esterni 647
Memorizzazione di LOB temporanei 648
Migrazione da LONG a LOB 648
16.2 LOB ed SQL 649
SQL per LOB interni persistenti 649
LOB esterni – BFILE 653
16.3 LOB e PL/SQL 654
DBMS_LOB 654
16.4 Considerazioni sulle prestazioni 678
Clausola Returning 678
16.5 Sommario 685
Capitolo 17 Programmazione di operazioni 687
17.1 Introduzione a DBMS_JOB 688
SUBMIT 689
BROKEN 693
RUN 695
CHANGE 696
REMOVE 698
17.2 Scheduler Oracle 699
Terminologia 699
Utilizzo di DBMS_SCHEDULER 699
Migrazione da DBMS_JOB 703
Eliminazione di un job 705
17.3 Sommario 706
Parte Terza APPENDICI 707
Appendice A Parole riservate di PL/SQL 709
A.1 Tabella delle parole riservate 709
Appendice B Guida ai package forniti 713
B.1 Package posseduti da SYS 713
DBMS_ADVANCED_REWRITE 714
DBMS_ADVISOR 715
DBMS_ALERT 715
DBMS_APPLICATION_INFO 715
DBMS_APPLY_ADM 716
DBMS_AQ 716
DBMS_BACKUP_RESTORE 716
DBMS_CAPTURE_ADM 717
DBMS_CRYPTO 717
DBMS_DATA_MINING, DBMS_DATA_MINING_TRANSFORM 718
DBMS_DATAPUMP 718
DBMS_DDL 718
DBMS_DEBUG 719
DBMS_DEFER 719
DBMS_DESCRIBE 719
DBMS_DIMENSION 720
DBMS_FGA 720
DBMS_FILE_TRANSFER 721
DBMS_FLASHBACK 721
DBMS_HS 721
DBMS_HS_PASSTHROUGH 722
DBMS_JAVA 722
DBMS_JOB 722
DBMS_LDAP 723
DBMS_LOB 723
DBMS_LOCK 723
DBMS_LOGMNR 724
DBMS_METADATA 724
DBMS_MONITOR 724
DBMS_OBFUSCATION_TOOLKIT 724
DBMS_ODCI 725
DBMS_OFFLINE_OG 725
DBMS_OLAP 725
DBMS_OUTLN 726
DBMS_OUTLN_EDIT 726
DBMS_OUTPUT 726
DBMS_PIPE 727
DBMS_PROFILER 727
DBMS_PROPAGATION_ADM 728
DBMS_RANDOM 728
DBMS_REDEFINITION 728
DBMS_REFRESH 729
DBMS_REPAIR 729
DBMS_REPCAT 729
DBMS_RESOURCE_MANAGER/DBMS_RESOURCE_MANAGER_PRIVS 730
DBMS_RESUMABLE 730
DBMS_ROWID 730
DBMS_RULE, DBMS_RULE_ADM 731
DBMS_SCHEDULER 731
DBMS_SCHEMA_COPY 731
DBMS_SERVER_ALERT 732
DBMS_SERVICE 732
DBMS_SESSION 732
DBMS_SHARED_POOL 732
DBMS_SPACE 733
DBMS_SQL 733
DBMS_SQLTUNE 733
DBMS_STANDARD, STANDARD 733
DBMS_STAT_FUNCS 734
DBMS_STATS 734
DBMS_SUMMARY 734
DBMS_TRACE 735
DBMS_TRANSACTION 735
DBMS_TRANSFORM 735
DBMS_TYPES 735
DBMS_UTILITY 736
DBMS_WARNING 736
DBMS_WORKLOAD_REPOSITORY 736
DBMS_XMLGEN, DBMS_XMLQUERY 737
DBMS_XPLAN 737
UTL_COLL 737
UTL_COMPRESS 738
UTL_DBWS 738
UTL_ENCODE 738
UTL_FILE 738
UTL_HTTP 739
UTL_I18N 739
UTL_INADDR 739
UTL_LMS 740
UTL_MAIL 740
UTL_RAW 740
UTL_RECOMP 740
UTL_REF 741
UTL_SMTP 741
UTL_TCP 741
UTL_URL 741
B.2 Package incorporati posseduti da CTXSYS 742
CTX_ADM 742
CTX_CLS 743
CTX_DDL 744
CTX_DOC 746
CTX_OUTPUT 747
CTX_QUERY 748
CTX_REPORT 749
CTX_THES 750
Indice anlitico 753
Manuali gratis di Oracle