SlideShare una empresa de Scribd logo
Podrá descargar algunos elementos de este libro en la página web
                 de Ediciones ENI: http://www.ediciones-eni.com.
Escriba la referencia ENI del libro RIT11GORA en la zona de búsqueda y valide.
            Haga clic en el título y después en el vínculo de descarga.



Modelo relacional                                                                     Capítulo 1

A. Gestión de datos . . . . . . . . . . . . . . . . . .                                           19
   1.   Generalidades sobre los archivos. . . . . . . . . . . . . . .                             19
   2.   Organizaciones típicas de los archivos . . . . . . . . . . . .                            20

B. El modelo relacional . . . . . . . . . . . . . . . . .                                         22
   1.   Conceptos y definiciones . . . . . . . . . . . . . . . . . .                              22
        a. Dominio . . . . . . . . . . . . . . . . . . . . . . .                                  22
        b. Producto cartesiano . . . . . . . . . . . . . . . . . .                                23
        c. Relación . . . . . . . . . . . . . . . . . . . . . . .                                 23
   2.   Principales reglas . . . . . . . . . . . . . . . . . . . . .                              24

C. Álgebra relacional      . . . . . . . . . . . . . . . . .                                      26
   1.   Operadores. . . . . . . . . . . . . . . . . . . . . . . .                                 26
        a.   Unión . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   26
        b.   Intersección. . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   27
        c.   Diferencia . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   28
        d.   Restricción . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   28
        e.   Proyección . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   29
        f.   Producto cartesiano . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   30
        g.   Combinaciones . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   31
        h.   Campos calculados elementales    .   .   .   .   .   .   .   .   .   .   .   .   .   32
        i.   Cálculo de valores agregados .   .   .   .   .   .   .   .   .   .   .   .   .   .   33




Oracle 11g - SQL, PL/SQL, SQL*Plus                                                                 1
Contenido

    2.   Etapas para la resolución de problemas       . . . . . . . . . . .                       34
         a. Análisis de las necesidades . . . . . . . . . . . . . . .                             34
         b. Definición de la "vista" . . . . . . . . . . . . . . . . .                            34
         c. Orden y especificación de las operaciones . . . . . . . . .                           35



SQL                                                                                   Capítulo 2

A. Generalidades . . . . . . . . . . . . . . . . . . .                                            41
    1.   Componentes de la base de datos lógica: objetos SQL. . . . . .                           42
         a.   La gestión de los datos . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   42
         b.   Almacenamiento físico . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   43
         c.   Almacenamiento de instrucciones     .   .   .   .   .   .   .   .   .   .   .   .   43
         d.   Gestión de los usuarios . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   44
         e.   Denominación de los objetos . .     .   .   .   .   .   .   .   .   .   .   .   .   44
    2.   Categorías de instrucciones . . . . . . . . . . . . . . . . .                            45
         a. DDL (Data Definition Language,
            lenguaje de definición de datos) . . . . . .              . . . . . . .               45
         b. DML (Data Manipulation Language, lenguaje
            de manipulación de datos) . . . . . . . .                 .   .   .   .   .   .   .   46
         c. Transaction Control language . . . . . . .                .   .   .   .   .   .   .   46
         d. Session Control language . . . . . . . . .                .   .   .   .   .   .   .   46
         e. Embedded SQL . . . . . . . . . . . . .                    .   .   .   .   .   .   .   46

B. Descripción de objetos . . . . . . . . . . . . . . . .                                         47
    1.   Tipos . . . . . . . . . . . . . . . . . . . . . . . . . .                                47
    2.   Creación de una tabla . . . . . . . . . . . . . . . . . . .                              49
         a.   Restricciones de columna . . . . . . . . .              .   .   .   .   .   .   .   49
         b.   Restricciones de tabla (sobre varias columnas)          .   .   .   .   .   .   .   50
         c.   Opciones de las restricciones . . . . . . .             .   .   .   .   .   .   .   51
         d.   Denominación de las restricciones . . . . .             .   .   .   .   .   .   .   52


2                                        Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido

        e.   La columna virtual . . . . . . . . . . . . . . . . . . .                                             54
   3.   Eliminación de una tabla             . . . . . . . . . . . . . . . . .                                    55
   4.   Modificación de una tabla . . . . . . . . . . . . . . . . .                                               56
        a.   Adición o modificación de columnas . . . . .                                 .   .   .   .   .   .   57
        b.   Adición de una restricción de tabla . . . . . .                              .   .   .   .   .   .   57
        c.   Eliminación de una restricción . . . . . . .                                 .   .   .   .   .   .   60
        d.   Activación y desactivación de una restricción . .                            .   .   .   .   .   .   60
        e.   Modificación de una restricción . . . . . . .                                .   .   .   .   .   .   61
        f.   Eliminación de columnas . . . . . . . . . .                                  .   .   .   .   .   .   63
        g.   Cómo cambiar el nombre de una tabla . . . .                                  .   .   .   .   .   .   64
        h.   Hacer una tabla accesible sólo en modo lectura,                             o
             en modo lectura y escritura . . . . . . . . .                                .   . . . . .           65
   5.   Restauración de una tabla . . . . . . . . . . . . . . . . .                                               66
   6.   Gestion de índices. . . . . . . . . . . . . . . . . . . . .                                               68
        a. Creación de un índice . . . . . . . . . . . . . . . . .                                                69
        b. Eliminación de un índice . . . . . . . . . . . . . . . .                                               69

C. Manipulación de los datos . . . . . . . . . . . . . .                                                          70
   1.   Instrucciones . . . . . . . . . . . . . . . . . . . . . . .                                               70
        a.   Expresiones .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   .   .   70
        b.   Operadores .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   .   .   70
        c.   Condiciones     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   .   .   71
        d.   Funciones .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   .   .   72
   2.   Creación de filas . . . . . . . . . . . . . . . . . . . . .                                               83
   3.   Eliminación de filas . . . . . . . . . . . . . . . . . . . .                                              85
   4.   Modificación de filas . . . . . . . . . . . . . . . . . . . .                                             87
   5.   Extracción de datos . . . . . . . . . . . . . . . . . . . .                                               88
   6.   Control de transacciones             . . . . . . . . . . . . . . . . .                                    89
        a. Validación de transacciones . . . . . . . . . . . . . . .                                              90
        b. Anulación de modificaciones . . . . . . . . . . . . . .                                                90
        c. Declaración de un punto de control . . . . . . . . . . .                                               90


Oracle 11g - SQL, PL/SQL, SQL*Plus                                                                                 3
Contenido

         d. Acceso simultáneo a los datos . . . . . . . . . . . . .                                    93
         e. Verificación de las restricciones al final de la transacción . . .                         96

D. Traducción del álgebra relacional . . . . . . . . . . .                                             98
    1.   Operaciones . . . . . . . . . . . . . . . . . . . . . . .                                     98
         a.   Restricción . . . . . . . . . . . .              .   .   .   .   .   .   .   .   .   .    98
         b.   Campos calculados elementales . . .              .   .   .   .   .   .   .   .   .   .    98
         c.   Proyección . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .    99
         d.   Cálculo de valores agregados . . . .             .   .   .   .   .   .   .   .   .   .   101
         e.   Funciones de grupo . . . . . . . .               .   .   .   .   .   .   .   .   .   .   101
         f.   Funciones analíticas . . . . . . . .             .   .   .   .   .   .   .   .   .   .   105
         g.   Restricciones sobre valores agregados            .   .   .   .   .   .   .   .   .   .   108
         h.   Producto cartesiano . . . . . . . .              .   .   .   .   .   .   .   .   .   .   109
         i.   Combinaciones . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   110
         j.   Combinaciones externas . . . . . .               .   .   .   .   .   .   .   .   .   .   111
         k.   Unión, intersección, diferencia . . . .          .   .   .   .   .   .   .   .   .   .   112
    2.   Tratamiento del resultado. . . . . . . . . . . . . . . . . .                                  113
         a. Clasificación . . . . . . . . . . . . . . . . . . . . .                                    114
         b. Guardado . . . . . . . . . . . . . . . . . . . . . .                                       115
         c. Enumeración de todas las posibilidades
            de un cálculo de valores agregados . . . . . . . . . . .                                   119
    3.   MERGE . . . . . . . . . . . . . . . . . . . . . . . . .                                       121

E. SQL avanzado . . . . . . . . . . . . . . . . . . . 124
    1.   Los objetos. . . . . . . . . . . . . . . . . . . . . . . .                                    124
         a.   Objetos   View (vista) . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   124
         b.   Objetos   schema (esquema) .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   130
         c.   Objetos   Synonym (sinónimo)     .   .   .   .   .   .   .   .   .   .   .   .   .   .   134
         d.   Objetos   Sequence (secuencia)   .   .   .   .   .   .   .   .   .   .   .   .   .   .   135
    2.   Consultas complejas . . . . . . . . . . . . . . . . . . . .                                   138
         a. Elementos de la sintaxis . . . . . . . . . . . . . . . .                                   138
         b. Subconsultas . . . . . . . . . . . . . . . . . . . . .                                     141

4                                         Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido

        c. Consultas jerárquicas. . . . . . . . . . . . . . . . . .                               144
        d. Pivotar los datos. . . . . . . . . . . . . . . . . . . .                               147
   3.   Bloqueo de tablas . . . . . . . . . . . . . . . . . . . . .                               152
   4.   Comentarios . . . . . . . . . . . . . . . . . . . . . . .                                 154
   5.   Información sobre los objetos del esquema . . . . . . . . . .                             155
   6.   Funcionalidades específicas . . . . . . . . . . . . . . . . .                             157
   7.   Las expresiones regulares. . . . . . . . . . . . . . . . . .                              160



SQL*Plus y SQL Developer                                                              Capítulo 3

A. Uso de SQL*Plus . . . . . . . . . . . . . . . . . . 169
   1.   Conexión y desconexión . . . . . . . . . . . . . . . . . .                                169
        a.   Ejecución del programa . . . .       .   .   .   .   .   .   .   .   .   .   .   .   170
        b.   Conexión después de la ejecución     .   .   .   .   .   .   .   .   .   .   .   .   171
        c.   Cómo cambiar la contraseña . .       .   .   .   .   .   .   .   .   .   .   .   .   172
        d.   Desconexión . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   172
        e.   Cómo salir de SQL*Plus . . . .       .   .   .   .   .   .   .   .   .   .   .   .   173
   2.   Ejecución de instrucciones . . . . . . . . . . . . . . . . .                              173
        a. Gestión del búfer . . . . . . . . . . . . . . . . . . .                                174
        b. Utilización de scripts . . . . . . . . . . . . . . . . . .                             178
   3.   Gestión del entorno SQL*Plus     . . . . . . . . . . . . . . .                            181

B. Presentación de los datos . . . . . . . . . . . . . . 184
   1.   Gestión de variables . . . . . . . . . . . . . . . . . . . .                              184
   2.   Presentación de resultados . . . . . . . . . . . . . . . . .                              189
        a.   Control de la ejecución de scripts   .   .   .   .   .   .   .   .   .   .   .   .   189
        b.   Cabecera y pie de página . . .       .   .   .   .   .   .   .   .   .   .   .   .   189
        c.   Interrupción. . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   191
        d.   Formato de columna . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   191
        e.   Cálculo estadístico . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   193

Oracle 11g - SQL, PL/SQL, SQL*Plus                                                                 5
Contenido

         f.   Anulación de declaraciones . . . . . . . . . . . . . . .    194
    3.   Entorno y tratamiento de errores   . . . . . . . . . . . . . .   194
         a. Estadísticas de tiempo . . . . . . . . . . . . . . . . .      194
         b. Tratamiento de errores . . . . . . . . . . . . . . . . .      194
         c. Parámetros del entorno . . . . . . . . . . . . . . . . .      195
    4.   Creación de un informe en formato HTML . . . . . . . . . . .     199

C. SQL Developer . . . . . . . . . . . . . . . . . . . 201
    1.   Iniciar SQL Developer . . . . . . . . . . . . . . . . . . .      201
    2.   Crear una nueva conexión . . . . . . . . . . . . . . . . .       203
    3.   Introducir las consultas SQL . . . . . . . . . . . . . . . .     204
    4.   Actualizar los datos . . . . . . . . . . . . . . . . . . . .     208
    5.   Trabajar con los objetos de un esquema . . . . . . . . . . .     209
    6.   Exportar los datos . . . . . . . . . . . . . . . . . . . . .     212
    7.   Exportar las definiciones . . . . . . . . . . . . . . . . . .    214



PL/SQL                                                            Capítulo 4

A. Introducción . . . . . . . . . . . . . . . . . . . . 219
    1.   ¿Qué es el PL/SQL? . . . . . . . . . . . . . . . . . . . .       219
    2.   Instrucciones SQL integradas en PL/SQL . . . . . . . . . . .     219
    3.   Instrucciones específicas de PL/SQL . . . . . . . . . . . . .    220
    4.   Bloques PL/SQL. . . . . . . . . . . . . . . . . . . . . .        220

B. Gestión de variables . . . . . . . . . . . . . . . . . 221
    1.   Variables locales . . . . . . . . . . . . . . . . . . . . .      221
    2.   Tipos predefinidos . . . . . . . . . . . . . . . . . . . . .     223
         a. Tipos de caracteres . . . . . . . . . . . . . . . . . .       223
         b. Tipos numéricos . . . . . . . . . . . . . . . . . . . .       224
         c. Tipos para objetos de gran tamaño . . . . . . . . . . . .     225

6                                       Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido

        d. Otros tipos de datos . . . . . . . . . . . . . . . . . .                                        225
        e. Subtipos . . . . . . . . . . . . . . . . . . . . . . .                                          226
   3.   Tipos definidos por el usuario . . . . . . . . . . . . . . . .                                     226
   4.   Colecciones y registros . . . . . . . . . . . . . . . . . . .                                      227
        a. Colecciones . . . . . . . . . . . . . . . . . . . . .                                           227
        b. Registros . . . . . . . . . . . . . . . . . . . . . .                                           230
   5.   Tipos derivados    . . . . . . . . . . . . . . . . . . . . .                                       231
   6.   Variables definidas en un entorno externo a PL/SQL. . . . . . .                                    232
   7.   Uso de variables . . . . . . . . . . . . . . . . . . . . .                                         233
        a. Asignación de un valor . . . . . . . . . . . . . . . . .                                        233
        b. Uso . . . . . . . . . . . . . . . . . . . . . . . . .                                           234
        c. Visibilidad . . . . . . . . . . . . . . . . . . . . . .                                         235
   8.   Variables estructuradas e instrucciones DML . . . . . . . . . .                                    236

C. Estructuras de control . . . . . . . . . . . . . . . . 238
   1.   Procesamientos condicionales           . . . . . . . . . . . . . . .                               239
   2.   Procesamientos repetitivos . . . . . . . . . . . . . . . . .                                       242

D. Uso de cursores . . . . . . . . . . . . . . . . . . 245
   1.   Definición . . . . . . . . . . . . . . . . . . . . . . . .                                         245
   2.   Uso de un cursor explícito . . . . . . . . . . . . . . . . .                                       245
        a.   Declaración . .    . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   245
        b.   Apertura . . .     . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   245
        c.   Tratamiento de    las filas   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   246
        d.   Cierre . . . .     . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   246
        e.   Cursor for . .     . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   246
   3.   Atributos de un cursor . . . . . . . . . . . . . . . . . . .                                       248
   4.   ROWNUM . . . . . . . . . . . . . . . . . . . . . . . .                                             250
   5.   Modificación de los valores de un cursor . . . . . . . . . . .                                     251
   6.   Paso de parámetros        . . . . . . . . . . . . . . . . . . .                                    252



Oracle 11g - SQL, PL/SQL, SQL*Plus                                                                          7
Contenido


E. Gestión de errores       . . . . . . . . . . . . . . . . . 253
    1.   Errores predefinidos . . . . . . . . . . . . . . . . . . . .    255
    2.   Anomalías del programa de usuario . . . . . . . . . . . . .     257
    3.   Errores de Oracle . . . . . . . . . . . . . . . . . . . . .     259
    4.   Ámbito de las excepciones . . . . . . . . . . . . . . . . .     261
    5.   Uso de raise_application_error. . . . . . . . . . . . . . . .   262

F. Ejemplo resumen . . . . . . . . . . . . . . . . . . 264
    1.   Especificación del programa. . . . . . . . . . . . . . . . .    264
    2.   Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . .       265
    3.   Ejecución en SQL*Plus. . . . . . . . . . . . . . . . . . .      266



PL/SQL en objetos                                               Capítulo 5
de la base de datos

A. Introducción . . . . . . . . . . . . . . . . . . . . 271

B. Los DATABASES TRIGGERS . . . . . . . . . . . . . 271

C. Disparadores sobre sucesos del sistema o de usuario            . . 283
    1.   Atributos   . . . . . . . . . . . . . . . . . . . . . . . .     283
    2.   Sucesos del sistema   . . . . . . . . . . . . . . . . . . .     285
    3.   Sucesos de usuario . . . . . . . . . . . . . . . . . . . .      286

D. Modificaciones en los disparadores . . . . . . . . . . 288

E. Procedimientos almacenados . . . . . . . . . . . . . 290

F. Funciones almacenadas . . . . . . . . . . . . . . . 292



8                                     Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido


G. Paquetes . . . . . . . . . . . . . . . . . . . . . 295
     1.   Cabecera . . . . . . . . . . . . . . . . . . . . . . . .                   296
     2.   Cuerpo del paquete . . . . . . . . . . . . . . . . . . . .                 297
     3.   Uso . . . . . . . . . . . . . . . . . . . . . . . . . . .                  299
     4.   Cursores   . . . . . . . . . . . . . . . . . . . . . . . .                 300

H. Transacciones autónomas . . . . . . . . . . . . . . 301

I.   SQL dinámico . . . . . . . . . . . . . . . . . . . 305
     1.   EXECUTE IMMEDIATE . . . . . . . . . . . . . . . . . . .                    306
     2.   OPEN FOR, FETCH y CLOSE . . . . . . . . . . . . . . . .                    310
          a. Apertura de un cursor (OPEN FOR) . . . . . . . . . . . .                310
          b. FETCH. . . . . . . . . . . . . . . . . . . . . . . .                    311
          c. CLOSE . . . . . . . . . . . . . . . . . . . . . . . .                   312
     3.   Uso de cursores dinámicos . . . . . . . . . . . . . . . . .                313
          a.   Mejora del rendimiento . . . . . . . . . . . .    .   .   .   .   .   313
          b.   Pasar el nombre de un objeto . . . . . . . . .    .   .   .   .   .   314
          c.   Uso del mismo argumento varias veces . . . . .    .   .   .   .   .   314
          d.   Atributos de los cursores . . . . . . . . . . .   .   .   .   .   .   315
          e.   Paso de valores NULL . . . . . . . . . . . .      .   .   .   .   .   315
          f.   Derechos de usuario . . . . . . . . . . . . .     .   .   .   .   .   316
          g.   Directiva de compilación RESTRICT_REFERENCES      .   .   .   .   .   317
          h.   Cómo evitar los interbloqueos . . . . . . . . .   .   .   .   .   .   318
     4.   El paquete DBMS_SQL. . . . . . . . . . . . . . . . . . .                   318

J.   Colecciones y registros      . . . . . . . . . . . . . . . 319
     1.   Cómo hacer referencia a un elemento de una colección . . . . .             319
     2.   Asignación de un valor y comparación de colecciones    . . . . .           320
     3.   Cómo trabajar con colecciones . . . . . . . . . . . . . . .                322
          a. Cómo trabajar con colecciones de tipo NESTED TABLE . . .                322
          b. Cómo trabajar con tablas . . . . . . . . . . . . . . . .                324

Oracle 11g - SQL, PL/SQL, SQL*Plus                                                    9
Contenido

     4.   Cómo manipular los elementos de las colecciones . . . . . . .                                        326
     5.   Métodos    . . . . . . . . . . . . . . . . . . . . . . . .                                           327
          a.   EXISTS . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   328
          b.   COUNT . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   328
          c.   LIMIT . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   329
          d.   FIRST, LAST .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   329
          e.   PRIOR, NEXT .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   329
          f.   EXTEND . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   330
          g.   TRIM . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   331
          h.   DELETE . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   331
          i.   COLLECT. . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   332
     6.   Excepciones . . . . . . . . . . . . . . . . . . . . . . .                                            333

K. Copia de datos por bloques                      . . . . . . . . . . . . . 334
     1.   FORALL . . . . . . . . . . . . . . . . . . . . . . . . .                                             337
          a. Limitaciones . . . . . . . . . . . . . . . . . . . . .                                            339
          b. Las transacciones y el comando FORALL . . . . . . . . .                                           339
          c. Las cláusulas INDICES OF y VALUES OF . . . . . . . . .                                            339
     2.   El atributo %BULK_ROWCOUNT . . . . . . . . . . . . . .                                               340
     3.   BULK COLLECT. . . . . . . . . . . . . . . . . . . . . .                                              341
     4.   LIMIT . . . . . . . . . . . . . . . . . . . . . . . . . .                                            342
     5.   Comparar las colecciones . . . . . . . . . . . . . . . . . .                                         343

L. Funciones y conjuntos de filas . . . . . . . . . . . . 347

M. La utilidad Wrap . . . . . . . . . . . . . . . . . . 349

N. DBMS_OUTPUT . . . . . . . . . . . . . . . . . . 350
     1.   ENABLE . . . . . . . . . . . . . . . . . . . . . . . . .                                             351
     2.   DISABLE . . . . . . . . . . . . . . . . . . . . . . . .                                              351
     3.   PUT y PUT_LINE . . . . . . . . . . . . . . . . . . . . .                                             352
     4.   NEW_LINE. . . . . . . . . . . . . . . . . . . . . . . .                                              352

10                                                 Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido

   5.   GET_LINE y GET_LINES . . . . . . . . . . . . . . . . . .     353

O. El paquete UTL_FILE . . . . . . . . . . . . . . . . 354
   1.   FOPEN, FOPEN_NCHAR . . . . . . . . . . . . . . . . . .       355
   2.   IS_OPEN . . . . . . . . . . . . . . . . . . . . . . . .      357
   3.   FCLOSE . . . . . . . . . . . . . . . . . . . . . . . . .     357
   4.   FCLOSE_ALL . . . . . . . . . . . . . . . . . . . . . . .     357
   5.   GET_LINE, GET_LINE_NCHAR, GET_RAW . . . . . . . . . .        358
   6.   PUT, PUT_NCHAR, PUT_RAW . . . . . . . . . . . . . . .        359
   7.   NEW_LINE. . . . . . . . . . . . . . . . . . . . . . . .      360
   8.   PUT_LINE . . . . . . . . . . . . . . . . . . . . . . . .     360
   9.   PUTF, PUTF_NCHAR . . . . . . . . . . . . . . . . . . .       360
   10. FFLUSH . . . . . . . . . . . . . . . . . . . . . . . . .      362
   11. FSEEK, FGETPOS . . . . . . . . . . . . . . . . . . . . .      363
   12. FREMOVE, FCOPY, FRENAME . . . . . . . . . . . . . . .         363
   13. FGETATTR . . . . . . . . . . . . . . . . . . . . . . . .      364
   14. Excepciones . . . . . . . . . . . . . . . . . . . . . . .     364

P. El paquete DBMS_LOB . . . . . . . . . . . . . . . 366
   1.   Constantes . . . . . . . . . . . . . . . . . . . . . . . .   366
   2.   APPEND. . . . . . . . . . . . . . . . . . . . . . . . .      366
   3.   CLOSE . . . . . . . . . . . . . . . . . . . . . . . . .      367
   4.   COMPARE . . . . . . . . . . . . . . . . . . . . . . . .      367
   5.   COPY . . . . . . . . . . . . . . . . . . . . . . . . . .     367
   6.   CREATETEMPORARY, FREETEMPORARY, ISTEMPORARY . . . .          368
   7.   ERASE . . . . . . . . . . . . . . . . . . . . . . . . .      369
   8.   FILEOPEN, FILECLOSE, FILECLOSEALL e ISOPEN . . . . . . .     370
   9.   FILEEXISTS, FILEISOPEN. . . . . . . . . . . . . . . . . .    370
   10. FILEGETNAME . . . . . . . . . . . . . . . . . . . . . .       371
   11. GETLENGTH, GETCHUNKSIZE . . . . . . . . . . . . . . .         371
   12. INSTR. . . . . . . . . . . . . . . . . . . . . . . . . .      372

Oracle 11g - SQL, PL/SQL, SQL*Plus                                   11
Contenido

     13. LOADFROMFILE, LOADBLOBFROMFILE, LOADCLOBFROMFILE .                 372
     14. OPEN . . . . . . . . . . . . . . . . . . . . . . . . . .           375
     15. READ . . . . . . . . . . . . . . . . . . . . . . . . . .           375
     16. SUBSTR . . . . . . . . . . . . . . . . . . . . . . . . .           376
     17. TRIM . . . . . . . . . . . . . . . . . . . . . . . . . .           376
     18. WRITE, WRITEAPPEND . . . . . . . . . . . . . . . . . .             376
     19. Excepciones . . . . . . . . . . . . . . . . . . . . . . .          377



Java                                                                Capítulo 6

A. Introducción . . . . . . . . . . . . . . . . . . . . 381

B. Cómo cargar procedimientos almacenados . . . . . . . 382
     1.   Generalidades . . . . . . . . . . . . . . . . . . . . . .         382
     2.   Derechos de uso . . . . . . . . . . . . . . . . . . . . .         383
     3.   La utilidad Loadjava . . . . . . . . . . . . . . . . . . . .      384
     4.   La utilidad Dropjava . . . . . . . . . . . . . . . . . . . .      387
     5.   El acceso a los datos . . . . . . . . . . . . . . . . . . .       388
          a. JDBC . . . . . . . . . . . . . . . . . . . . . . . .           389
          b. SQLJ . . . . . . . . . . . . . . . . . . . . . . . .           389

C. Publicación de procedimientos almacenados . . . . . . 390
     1.   Correspondencia entre tipos de datos . . . . . . . . . . . . .    390
     2.   Creación de una función Java o de un procedimiento Java   . . .   392
     3.   CREATE JAVA . . . . . . . . . . . . . . . . . . . . . .           395

D. Uso de procedimientos almacenados              . . . . . . . . . 396
     1.   Llamada a un procedimiento Java desde SQL*Plus . . . . . . .      396
     2.   Llamada de un procedimiento Java desde un disparador
          de base de datos . . . . . . . . . . . . . . . . . . . . .        399


12                                      Oracle 11g - SQL, PL/SQL, SQL*Plus
Contenido

   3.   Llamada a un procedimiento Java
        desde una instrucción SQL DML o un bloque PL/SQL . . . . . .                 400



El analizador de XML                                                     Capítulo 7

A. Introducción . . . . . . . . . . . . . . . . . . . . 405

B. Lectura de un archivo XML . . . . . . . . . . . . . . 406

C. Aplicación de una hoja de estilos a un documento XML . . 410

D. XSU . . . . . . . . . . . . . . . . . . . . . . . 412
   1.   Generación de código XML con DBMS_XMLQuery . . . . . . .                     412
        a.   Generación de código XML a partir de una consulta   .   .   .   .   .   412
        b.   Modificación de las etiquetas ROW y ROWSET . .      .   .   .   .   .   414
        c.   Limitación del número de filas . . . . . . . . .    .   .   .   .   .   415
        d.   Hojas de estilos . . . . . . . . . . . . . . .      .   .   .   .   .   417
   2.   Consultas parametrizadas   . . . . . . . . . . . . . . . . .                 417
   3.   Almacenamiento de datos en formato XML con DBMS_XMLSave .                    418
        a. Adición de datos . . . . . . . . . . . . . . . . . . .                    419
        b. Actualización de datos . . . . . . . . . . . . . . . . .                  423
        c. Borrado de los datos . . . . . . . . . . . . . . . . .                    424



Aplicación Express                                                       Capítulo 8

A. Introducción . . . . . . . . . . . . . . . . . . . . 429

B. Activar Oracle Application Express . . . . . . . . . . . 429

C. Crear un espacio de trabajo . . . . . . . . . . . . . 431

Oracle 11g - SQL, PL/SQL, SQL*Plus                                                   13
Contenido


D. Desarrollar una aplicación . . . . . . . . . . . . . . 437
     1.   Conectarse al espacio de trabajo   . . . . . . . . . . . . . .    437
     2.   Crear los objetos de la aplicación . . . . . . . . . . . . . .    439
     3.   Crear la aplicación . . . . . . . . . . . . . . . . . . . .       443
     4.   Verificar la aplicación . . . . . . . . . . . . . . . . . . .     449
     5.   Personalizar la aplicación   . . . . . . . . . . . . . . . . .    453
          a. Modificar la presentación de las páginas . . . . . . . . .     453
          b. Crear y utilizar listas de valores . . . . . . . . . . . . .   458
          c. Agregar controles a los datos introducidos . . . . . . . . .   465



     Índice . . . . . . . . . . . . . . . . . . . . . . . 472




14                                        Oracle 11g - SQL, PL/SQL, SQL*Plus

Más contenido relacionado

PDF
Tesis Licenciatura
PDF
Metodologia orientada a objeto - libro
PDF
proyecto final de carrera con kinect
PDF
Java 2d
PDF
Pensar en cpp
PDF
Curso de html y phpnuke
PDF
Db2s1z80
PDF
Autocad manual de personalización
Tesis Licenciatura
Metodologia orientada a objeto - libro
proyecto final de carrera con kinect
Java 2d
Pensar en cpp
Curso de html y phpnuke
Db2s1z80
Autocad manual de personalización

La actualidad más candente (8)

PDF
PDF
PDF
Autodesk auto cad 2010
PDF
03 01-conceptos basicos-de_solid_works-piezas_y_ensamblajes
PDF
R manual
PDF
Datos con r
PDF
Introduccion a la_programacion_con_c
Autodesk auto cad 2010
03 01-conceptos basicos-de_solid_works-piezas_y_ensamblajes
R manual
Datos con r
Introduccion a la_programacion_con_c
Publicidad

Similar a Oracle 11g (contenido) (2) (20)

PDF
Apuntes Bases de Datos
PDF
Bases de-datos
PDF
kupdf.net_bases-de-datos.pdf
PDF
BD cap 5 SQL.pdf
PDF
La cara oculta de c++ builder prev
PDF
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
PPTX
Ddl juan jhonatan
PDF
Apuntes prac
PDF
sql-es.13 manual teorico practico myql
PPT
Como cerar una base de datos con myql server.ppt
PDF
Guía 03. Ejercicios. Realización de consultas SQL - José J Sánchez H
PDF
Bad115 2012 ofic
PPTX
Introducción al sql
PDF
Postgresql
PDF
Postgresql
Apuntes Bases de Datos
Bases de-datos
kupdf.net_bases-de-datos.pdf
BD cap 5 SQL.pdf
La cara oculta de c++ builder prev
Guía 01. Lenguaje DDL. Manipulación del MySQL - José J Sánchez H
Ddl juan jhonatan
Apuntes prac
sql-es.13 manual teorico practico myql
Como cerar una base de datos con myql server.ppt
Guía 03. Ejercicios. Realización de consultas SQL - José J Sánchez H
Bad115 2012 ofic
Introducción al sql
Postgresql
Postgresql
Publicidad

Oracle 11g (contenido) (2)

  • 1. Podrá descargar algunos elementos de este libro en la página web de Ediciones ENI: http://www.ediciones-eni.com. Escriba la referencia ENI del libro RIT11GORA en la zona de búsqueda y valide. Haga clic en el título y después en el vínculo de descarga. Modelo relacional Capítulo 1 A. Gestión de datos . . . . . . . . . . . . . . . . . . 19 1. Generalidades sobre los archivos. . . . . . . . . . . . . . . 19 2. Organizaciones típicas de los archivos . . . . . . . . . . . . 20 B. El modelo relacional . . . . . . . . . . . . . . . . . 22 1. Conceptos y definiciones . . . . . . . . . . . . . . . . . . 22 a. Dominio . . . . . . . . . . . . . . . . . . . . . . . 22 b. Producto cartesiano . . . . . . . . . . . . . . . . . . 23 c. Relación . . . . . . . . . . . . . . . . . . . . . . . 23 2. Principales reglas . . . . . . . . . . . . . . . . . . . . . 24 C. Álgebra relacional . . . . . . . . . . . . . . . . . 26 1. Operadores. . . . . . . . . . . . . . . . . . . . . . . . 26 a. Unión . . . . . . . . . . . . . . . . . . . . . . . . 26 b. Intersección. . . . . . . . . . . . . . . . . . . . . . 27 c. Diferencia . . . . . . . . . . . . . . . . . . . . . . 28 d. Restricción . . . . . . . . . . . . . . . . . . . . . . 28 e. Proyección . . . . . . . . . . . . . . . . . . . . . . 29 f. Producto cartesiano . . . . . . . . . . . . . . . . . . 30 g. Combinaciones . . . . . . . . . . . . . . . . . . . . 31 h. Campos calculados elementales . . . . . . . . . . . . . 32 i. Cálculo de valores agregados . . . . . . . . . . . . . . 33 Oracle 11g - SQL, PL/SQL, SQL*Plus 1
  • 2. Contenido 2. Etapas para la resolución de problemas . . . . . . . . . . . 34 a. Análisis de las necesidades . . . . . . . . . . . . . . . 34 b. Definición de la "vista" . . . . . . . . . . . . . . . . . 34 c. Orden y especificación de las operaciones . . . . . . . . . 35 SQL Capítulo 2 A. Generalidades . . . . . . . . . . . . . . . . . . . 41 1. Componentes de la base de datos lógica: objetos SQL. . . . . . 42 a. La gestión de los datos . . . . . . . . . . . . . . . . . 42 b. Almacenamiento físico . . . . . . . . . . . . . . . . . 43 c. Almacenamiento de instrucciones . . . . . . . . . . . . 43 d. Gestión de los usuarios . . . . . . . . . . . . . . . . . 44 e. Denominación de los objetos . . . . . . . . . . . . . . 44 2. Categorías de instrucciones . . . . . . . . . . . . . . . . . 45 a. DDL (Data Definition Language, lenguaje de definición de datos) . . . . . . . . . . . . . 45 b. DML (Data Manipulation Language, lenguaje de manipulación de datos) . . . . . . . . . . . . . . . 46 c. Transaction Control language . . . . . . . . . . . . . . 46 d. Session Control language . . . . . . . . . . . . . . . . 46 e. Embedded SQL . . . . . . . . . . . . . . . . . . . . 46 B. Descripción de objetos . . . . . . . . . . . . . . . . 47 1. Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2. Creación de una tabla . . . . . . . . . . . . . . . . . . . 49 a. Restricciones de columna . . . . . . . . . . . . . . . . 49 b. Restricciones de tabla (sobre varias columnas) . . . . . . . 50 c. Opciones de las restricciones . . . . . . . . . . . . . . 51 d. Denominación de las restricciones . . . . . . . . . . . . 52 2 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 3. Contenido e. La columna virtual . . . . . . . . . . . . . . . . . . . 54 3. Eliminación de una tabla . . . . . . . . . . . . . . . . . 55 4. Modificación de una tabla . . . . . . . . . . . . . . . . . 56 a. Adición o modificación de columnas . . . . . . . . . . . 57 b. Adición de una restricción de tabla . . . . . . . . . . . . 57 c. Eliminación de una restricción . . . . . . . . . . . . . 60 d. Activación y desactivación de una restricción . . . . . . . . 60 e. Modificación de una restricción . . . . . . . . . . . . . 61 f. Eliminación de columnas . . . . . . . . . . . . . . . . 63 g. Cómo cambiar el nombre de una tabla . . . . . . . . . . 64 h. Hacer una tabla accesible sólo en modo lectura, o en modo lectura y escritura . . . . . . . . . . . . . . . 65 5. Restauración de una tabla . . . . . . . . . . . . . . . . . 66 6. Gestion de índices. . . . . . . . . . . . . . . . . . . . . 68 a. Creación de un índice . . . . . . . . . . . . . . . . . 69 b. Eliminación de un índice . . . . . . . . . . . . . . . . 69 C. Manipulación de los datos . . . . . . . . . . . . . . 70 1. Instrucciones . . . . . . . . . . . . . . . . . . . . . . . 70 a. Expresiones . . . . . . . . . . . . . . . . . . . . . . 70 b. Operadores . . . . . . . . . . . . . . . . . . . . . . 70 c. Condiciones . . . . . . . . . . . . . . . . . . . . . 71 d. Funciones . . . . . . . . . . . . . . . . . . . . . . 72 2. Creación de filas . . . . . . . . . . . . . . . . . . . . . 83 3. Eliminación de filas . . . . . . . . . . . . . . . . . . . . 85 4. Modificación de filas . . . . . . . . . . . . . . . . . . . . 87 5. Extracción de datos . . . . . . . . . . . . . . . . . . . . 88 6. Control de transacciones . . . . . . . . . . . . . . . . . 89 a. Validación de transacciones . . . . . . . . . . . . . . . 90 b. Anulación de modificaciones . . . . . . . . . . . . . . 90 c. Declaración de un punto de control . . . . . . . . . . . 90 Oracle 11g - SQL, PL/SQL, SQL*Plus 3
  • 4. Contenido d. Acceso simultáneo a los datos . . . . . . . . . . . . . 93 e. Verificación de las restricciones al final de la transacción . . . 96 D. Traducción del álgebra relacional . . . . . . . . . . . 98 1. Operaciones . . . . . . . . . . . . . . . . . . . . . . . 98 a. Restricción . . . . . . . . . . . . . . . . . . . . . . 98 b. Campos calculados elementales . . . . . . . . . . . . . 98 c. Proyección . . . . . . . . . . . . . . . . . . . . . . 99 d. Cálculo de valores agregados . . . . . . . . . . . . . . 101 e. Funciones de grupo . . . . . . . . . . . . . . . . . . 101 f. Funciones analíticas . . . . . . . . . . . . . . . . . . 105 g. Restricciones sobre valores agregados . . . . . . . . . . 108 h. Producto cartesiano . . . . . . . . . . . . . . . . . . 109 i. Combinaciones . . . . . . . . . . . . . . . . . . . . 110 j. Combinaciones externas . . . . . . . . . . . . . . . . 111 k. Unión, intersección, diferencia . . . . . . . . . . . . . . 112 2. Tratamiento del resultado. . . . . . . . . . . . . . . . . . 113 a. Clasificación . . . . . . . . . . . . . . . . . . . . . 114 b. Guardado . . . . . . . . . . . . . . . . . . . . . . 115 c. Enumeración de todas las posibilidades de un cálculo de valores agregados . . . . . . . . . . . 119 3. MERGE . . . . . . . . . . . . . . . . . . . . . . . . . 121 E. SQL avanzado . . . . . . . . . . . . . . . . . . . 124 1. Los objetos. . . . . . . . . . . . . . . . . . . . . . . . 124 a. Objetos View (vista) . . . . . . . . . . . . . . . . . . 124 b. Objetos schema (esquema) . . . . . . . . . . . . . . . 130 c. Objetos Synonym (sinónimo) . . . . . . . . . . . . . . 134 d. Objetos Sequence (secuencia) . . . . . . . . . . . . . . 135 2. Consultas complejas . . . . . . . . . . . . . . . . . . . . 138 a. Elementos de la sintaxis . . . . . . . . . . . . . . . . 138 b. Subconsultas . . . . . . . . . . . . . . . . . . . . . 141 4 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 5. Contenido c. Consultas jerárquicas. . . . . . . . . . . . . . . . . . 144 d. Pivotar los datos. . . . . . . . . . . . . . . . . . . . 147 3. Bloqueo de tablas . . . . . . . . . . . . . . . . . . . . . 152 4. Comentarios . . . . . . . . . . . . . . . . . . . . . . . 154 5. Información sobre los objetos del esquema . . . . . . . . . . 155 6. Funcionalidades específicas . . . . . . . . . . . . . . . . . 157 7. Las expresiones regulares. . . . . . . . . . . . . . . . . . 160 SQL*Plus y SQL Developer Capítulo 3 A. Uso de SQL*Plus . . . . . . . . . . . . . . . . . . 169 1. Conexión y desconexión . . . . . . . . . . . . . . . . . . 169 a. Ejecución del programa . . . . . . . . . . . . . . . . 170 b. Conexión después de la ejecución . . . . . . . . . . . . 171 c. Cómo cambiar la contraseña . . . . . . . . . . . . . . 172 d. Desconexión . . . . . . . . . . . . . . . . . . . . . 172 e. Cómo salir de SQL*Plus . . . . . . . . . . . . . . . . 173 2. Ejecución de instrucciones . . . . . . . . . . . . . . . . . 173 a. Gestión del búfer . . . . . . . . . . . . . . . . . . . 174 b. Utilización de scripts . . . . . . . . . . . . . . . . . . 178 3. Gestión del entorno SQL*Plus . . . . . . . . . . . . . . . 181 B. Presentación de los datos . . . . . . . . . . . . . . 184 1. Gestión de variables . . . . . . . . . . . . . . . . . . . . 184 2. Presentación de resultados . . . . . . . . . . . . . . . . . 189 a. Control de la ejecución de scripts . . . . . . . . . . . . 189 b. Cabecera y pie de página . . . . . . . . . . . . . . . 189 c. Interrupción. . . . . . . . . . . . . . . . . . . . . . 191 d. Formato de columna . . . . . . . . . . . . . . . . . . 191 e. Cálculo estadístico . . . . . . . . . . . . . . . . . . . 193 Oracle 11g - SQL, PL/SQL, SQL*Plus 5
  • 6. Contenido f. Anulación de declaraciones . . . . . . . . . . . . . . . 194 3. Entorno y tratamiento de errores . . . . . . . . . . . . . . 194 a. Estadísticas de tiempo . . . . . . . . . . . . . . . . . 194 b. Tratamiento de errores . . . . . . . . . . . . . . . . . 194 c. Parámetros del entorno . . . . . . . . . . . . . . . . . 195 4. Creación de un informe en formato HTML . . . . . . . . . . . 199 C. SQL Developer . . . . . . . . . . . . . . . . . . . 201 1. Iniciar SQL Developer . . . . . . . . . . . . . . . . . . . 201 2. Crear una nueva conexión . . . . . . . . . . . . . . . . . 203 3. Introducir las consultas SQL . . . . . . . . . . . . . . . . 204 4. Actualizar los datos . . . . . . . . . . . . . . . . . . . . 208 5. Trabajar con los objetos de un esquema . . . . . . . . . . . 209 6. Exportar los datos . . . . . . . . . . . . . . . . . . . . . 212 7. Exportar las definiciones . . . . . . . . . . . . . . . . . . 214 PL/SQL Capítulo 4 A. Introducción . . . . . . . . . . . . . . . . . . . . 219 1. ¿Qué es el PL/SQL? . . . . . . . . . . . . . . . . . . . . 219 2. Instrucciones SQL integradas en PL/SQL . . . . . . . . . . . 219 3. Instrucciones específicas de PL/SQL . . . . . . . . . . . . . 220 4. Bloques PL/SQL. . . . . . . . . . . . . . . . . . . . . . 220 B. Gestión de variables . . . . . . . . . . . . . . . . . 221 1. Variables locales . . . . . . . . . . . . . . . . . . . . . 221 2. Tipos predefinidos . . . . . . . . . . . . . . . . . . . . . 223 a. Tipos de caracteres . . . . . . . . . . . . . . . . . . 223 b. Tipos numéricos . . . . . . . . . . . . . . . . . . . . 224 c. Tipos para objetos de gran tamaño . . . . . . . . . . . . 225 6 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 7. Contenido d. Otros tipos de datos . . . . . . . . . . . . . . . . . . 225 e. Subtipos . . . . . . . . . . . . . . . . . . . . . . . 226 3. Tipos definidos por el usuario . . . . . . . . . . . . . . . . 226 4. Colecciones y registros . . . . . . . . . . . . . . . . . . . 227 a. Colecciones . . . . . . . . . . . . . . . . . . . . . 227 b. Registros . . . . . . . . . . . . . . . . . . . . . . 230 5. Tipos derivados . . . . . . . . . . . . . . . . . . . . . 231 6. Variables definidas en un entorno externo a PL/SQL. . . . . . . 232 7. Uso de variables . . . . . . . . . . . . . . . . . . . . . 233 a. Asignación de un valor . . . . . . . . . . . . . . . . . 233 b. Uso . . . . . . . . . . . . . . . . . . . . . . . . . 234 c. Visibilidad . . . . . . . . . . . . . . . . . . . . . . 235 8. Variables estructuradas e instrucciones DML . . . . . . . . . . 236 C. Estructuras de control . . . . . . . . . . . . . . . . 238 1. Procesamientos condicionales . . . . . . . . . . . . . . . 239 2. Procesamientos repetitivos . . . . . . . . . . . . . . . . . 242 D. Uso de cursores . . . . . . . . . . . . . . . . . . 245 1. Definición . . . . . . . . . . . . . . . . . . . . . . . . 245 2. Uso de un cursor explícito . . . . . . . . . . . . . . . . . 245 a. Declaración . . . . . . . . . . . . . . . . . . . . . . 245 b. Apertura . . . . . . . . . . . . . . . . . . . . . . . 245 c. Tratamiento de las filas . . . . . . . . . . . . . . . . 246 d. Cierre . . . . . . . . . . . . . . . . . . . . . . . . 246 e. Cursor for . . . . . . . . . . . . . . . . . . . . . . 246 3. Atributos de un cursor . . . . . . . . . . . . . . . . . . . 248 4. ROWNUM . . . . . . . . . . . . . . . . . . . . . . . . 250 5. Modificación de los valores de un cursor . . . . . . . . . . . 251 6. Paso de parámetros . . . . . . . . . . . . . . . . . . . 252 Oracle 11g - SQL, PL/SQL, SQL*Plus 7
  • 8. Contenido E. Gestión de errores . . . . . . . . . . . . . . . . . 253 1. Errores predefinidos . . . . . . . . . . . . . . . . . . . . 255 2. Anomalías del programa de usuario . . . . . . . . . . . . . 257 3. Errores de Oracle . . . . . . . . . . . . . . . . . . . . . 259 4. Ámbito de las excepciones . . . . . . . . . . . . . . . . . 261 5. Uso de raise_application_error. . . . . . . . . . . . . . . . 262 F. Ejemplo resumen . . . . . . . . . . . . . . . . . . 264 1. Especificación del programa. . . . . . . . . . . . . . . . . 264 2. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 265 3. Ejecución en SQL*Plus. . . . . . . . . . . . . . . . . . . 266 PL/SQL en objetos Capítulo 5 de la base de datos A. Introducción . . . . . . . . . . . . . . . . . . . . 271 B. Los DATABASES TRIGGERS . . . . . . . . . . . . . 271 C. Disparadores sobre sucesos del sistema o de usuario . . 283 1. Atributos . . . . . . . . . . . . . . . . . . . . . . . . 283 2. Sucesos del sistema . . . . . . . . . . . . . . . . . . . 285 3. Sucesos de usuario . . . . . . . . . . . . . . . . . . . . 286 D. Modificaciones en los disparadores . . . . . . . . . . 288 E. Procedimientos almacenados . . . . . . . . . . . . . 290 F. Funciones almacenadas . . . . . . . . . . . . . . . 292 8 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 9. Contenido G. Paquetes . . . . . . . . . . . . . . . . . . . . . 295 1. Cabecera . . . . . . . . . . . . . . . . . . . . . . . . 296 2. Cuerpo del paquete . . . . . . . . . . . . . . . . . . . . 297 3. Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 4. Cursores . . . . . . . . . . . . . . . . . . . . . . . . 300 H. Transacciones autónomas . . . . . . . . . . . . . . 301 I. SQL dinámico . . . . . . . . . . . . . . . . . . . 305 1. EXECUTE IMMEDIATE . . . . . . . . . . . . . . . . . . . 306 2. OPEN FOR, FETCH y CLOSE . . . . . . . . . . . . . . . . 310 a. Apertura de un cursor (OPEN FOR) . . . . . . . . . . . . 310 b. FETCH. . . . . . . . . . . . . . . . . . . . . . . . 311 c. CLOSE . . . . . . . . . . . . . . . . . . . . . . . . 312 3. Uso de cursores dinámicos . . . . . . . . . . . . . . . . . 313 a. Mejora del rendimiento . . . . . . . . . . . . . . . . . 313 b. Pasar el nombre de un objeto . . . . . . . . . . . . . . 314 c. Uso del mismo argumento varias veces . . . . . . . . . . 314 d. Atributos de los cursores . . . . . . . . . . . . . . . . 315 e. Paso de valores NULL . . . . . . . . . . . . . . . . . 315 f. Derechos de usuario . . . . . . . . . . . . . . . . . . 316 g. Directiva de compilación RESTRICT_REFERENCES . . . . . 317 h. Cómo evitar los interbloqueos . . . . . . . . . . . . . . 318 4. El paquete DBMS_SQL. . . . . . . . . . . . . . . . . . . 318 J. Colecciones y registros . . . . . . . . . . . . . . . 319 1. Cómo hacer referencia a un elemento de una colección . . . . . 319 2. Asignación de un valor y comparación de colecciones . . . . . 320 3. Cómo trabajar con colecciones . . . . . . . . . . . . . . . 322 a. Cómo trabajar con colecciones de tipo NESTED TABLE . . . 322 b. Cómo trabajar con tablas . . . . . . . . . . . . . . . . 324 Oracle 11g - SQL, PL/SQL, SQL*Plus 9
  • 10. Contenido 4. Cómo manipular los elementos de las colecciones . . . . . . . 326 5. Métodos . . . . . . . . . . . . . . . . . . . . . . . . 327 a. EXISTS . . . . . . . . . . . . . . . . . . . . . . . 328 b. COUNT . . . . . . . . . . . . . . . . . . . . . . . 328 c. LIMIT . . . . . . . . . . . . . . . . . . . . . . . . 329 d. FIRST, LAST . . . . . . . . . . . . . . . . . . . . . 329 e. PRIOR, NEXT . . . . . . . . . . . . . . . . . . . . . 329 f. EXTEND . . . . . . . . . . . . . . . . . . . . . . . 330 g. TRIM . . . . . . . . . . . . . . . . . . . . . . . . 331 h. DELETE . . . . . . . . . . . . . . . . . . . . . . . 331 i. COLLECT. . . . . . . . . . . . . . . . . . . . . . . 332 6. Excepciones . . . . . . . . . . . . . . . . . . . . . . . 333 K. Copia de datos por bloques . . . . . . . . . . . . . 334 1. FORALL . . . . . . . . . . . . . . . . . . . . . . . . . 337 a. Limitaciones . . . . . . . . . . . . . . . . . . . . . 339 b. Las transacciones y el comando FORALL . . . . . . . . . 339 c. Las cláusulas INDICES OF y VALUES OF . . . . . . . . . 339 2. El atributo %BULK_ROWCOUNT . . . . . . . . . . . . . . 340 3. BULK COLLECT. . . . . . . . . . . . . . . . . . . . . . 341 4. LIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . 342 5. Comparar las colecciones . . . . . . . . . . . . . . . . . . 343 L. Funciones y conjuntos de filas . . . . . . . . . . . . 347 M. La utilidad Wrap . . . . . . . . . . . . . . . . . . 349 N. DBMS_OUTPUT . . . . . . . . . . . . . . . . . . 350 1. ENABLE . . . . . . . . . . . . . . . . . . . . . . . . . 351 2. DISABLE . . . . . . . . . . . . . . . . . . . . . . . . 351 3. PUT y PUT_LINE . . . . . . . . . . . . . . . . . . . . . 352 4. NEW_LINE. . . . . . . . . . . . . . . . . . . . . . . . 352 10 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 11. Contenido 5. GET_LINE y GET_LINES . . . . . . . . . . . . . . . . . . 353 O. El paquete UTL_FILE . . . . . . . . . . . . . . . . 354 1. FOPEN, FOPEN_NCHAR . . . . . . . . . . . . . . . . . . 355 2. IS_OPEN . . . . . . . . . . . . . . . . . . . . . . . . 357 3. FCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . 357 4. FCLOSE_ALL . . . . . . . . . . . . . . . . . . . . . . . 357 5. GET_LINE, GET_LINE_NCHAR, GET_RAW . . . . . . . . . . 358 6. PUT, PUT_NCHAR, PUT_RAW . . . . . . . . . . . . . . . 359 7. NEW_LINE. . . . . . . . . . . . . . . . . . . . . . . . 360 8. PUT_LINE . . . . . . . . . . . . . . . . . . . . . . . . 360 9. PUTF, PUTF_NCHAR . . . . . . . . . . . . . . . . . . . 360 10. FFLUSH . . . . . . . . . . . . . . . . . . . . . . . . . 362 11. FSEEK, FGETPOS . . . . . . . . . . . . . . . . . . . . . 363 12. FREMOVE, FCOPY, FRENAME . . . . . . . . . . . . . . . 363 13. FGETATTR . . . . . . . . . . . . . . . . . . . . . . . . 364 14. Excepciones . . . . . . . . . . . . . . . . . . . . . . . 364 P. El paquete DBMS_LOB . . . . . . . . . . . . . . . 366 1. Constantes . . . . . . . . . . . . . . . . . . . . . . . . 366 2. APPEND. . . . . . . . . . . . . . . . . . . . . . . . . 366 3. CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . 367 4. COMPARE . . . . . . . . . . . . . . . . . . . . . . . . 367 5. COPY . . . . . . . . . . . . . . . . . . . . . . . . . . 367 6. CREATETEMPORARY, FREETEMPORARY, ISTEMPORARY . . . . 368 7. ERASE . . . . . . . . . . . . . . . . . . . . . . . . . 369 8. FILEOPEN, FILECLOSE, FILECLOSEALL e ISOPEN . . . . . . . 370 9. FILEEXISTS, FILEISOPEN. . . . . . . . . . . . . . . . . . 370 10. FILEGETNAME . . . . . . . . . . . . . . . . . . . . . . 371 11. GETLENGTH, GETCHUNKSIZE . . . . . . . . . . . . . . . 371 12. INSTR. . . . . . . . . . . . . . . . . . . . . . . . . . 372 Oracle 11g - SQL, PL/SQL, SQL*Plus 11
  • 12. Contenido 13. LOADFROMFILE, LOADBLOBFROMFILE, LOADCLOBFROMFILE . 372 14. OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . 375 15. READ . . . . . . . . . . . . . . . . . . . . . . . . . . 375 16. SUBSTR . . . . . . . . . . . . . . . . . . . . . . . . . 376 17. TRIM . . . . . . . . . . . . . . . . . . . . . . . . . . 376 18. WRITE, WRITEAPPEND . . . . . . . . . . . . . . . . . . 376 19. Excepciones . . . . . . . . . . . . . . . . . . . . . . . 377 Java Capítulo 6 A. Introducción . . . . . . . . . . . . . . . . . . . . 381 B. Cómo cargar procedimientos almacenados . . . . . . . 382 1. Generalidades . . . . . . . . . . . . . . . . . . . . . . 382 2. Derechos de uso . . . . . . . . . . . . . . . . . . . . . 383 3. La utilidad Loadjava . . . . . . . . . . . . . . . . . . . . 384 4. La utilidad Dropjava . . . . . . . . . . . . . . . . . . . . 387 5. El acceso a los datos . . . . . . . . . . . . . . . . . . . 388 a. JDBC . . . . . . . . . . . . . . . . . . . . . . . . 389 b. SQLJ . . . . . . . . . . . . . . . . . . . . . . . . 389 C. Publicación de procedimientos almacenados . . . . . . 390 1. Correspondencia entre tipos de datos . . . . . . . . . . . . . 390 2. Creación de una función Java o de un procedimiento Java . . . 392 3. CREATE JAVA . . . . . . . . . . . . . . . . . . . . . . 395 D. Uso de procedimientos almacenados . . . . . . . . . 396 1. Llamada a un procedimiento Java desde SQL*Plus . . . . . . . 396 2. Llamada de un procedimiento Java desde un disparador de base de datos . . . . . . . . . . . . . . . . . . . . . 399 12 Oracle 11g - SQL, PL/SQL, SQL*Plus
  • 13. Contenido 3. Llamada a un procedimiento Java desde una instrucción SQL DML o un bloque PL/SQL . . . . . . 400 El analizador de XML Capítulo 7 A. Introducción . . . . . . . . . . . . . . . . . . . . 405 B. Lectura de un archivo XML . . . . . . . . . . . . . . 406 C. Aplicación de una hoja de estilos a un documento XML . . 410 D. XSU . . . . . . . . . . . . . . . . . . . . . . . 412 1. Generación de código XML con DBMS_XMLQuery . . . . . . . 412 a. Generación de código XML a partir de una consulta . . . . . 412 b. Modificación de las etiquetas ROW y ROWSET . . . . . . . 414 c. Limitación del número de filas . . . . . . . . . . . . . . 415 d. Hojas de estilos . . . . . . . . . . . . . . . . . . . . 417 2. Consultas parametrizadas . . . . . . . . . . . . . . . . . 417 3. Almacenamiento de datos en formato XML con DBMS_XMLSave . 418 a. Adición de datos . . . . . . . . . . . . . . . . . . . 419 b. Actualización de datos . . . . . . . . . . . . . . . . . 423 c. Borrado de los datos . . . . . . . . . . . . . . . . . 424 Aplicación Express Capítulo 8 A. Introducción . . . . . . . . . . . . . . . . . . . . 429 B. Activar Oracle Application Express . . . . . . . . . . . 429 C. Crear un espacio de trabajo . . . . . . . . . . . . . 431 Oracle 11g - SQL, PL/SQL, SQL*Plus 13
  • 14. Contenido D. Desarrollar una aplicación . . . . . . . . . . . . . . 437 1. Conectarse al espacio de trabajo . . . . . . . . . . . . . . 437 2. Crear los objetos de la aplicación . . . . . . . . . . . . . . 439 3. Crear la aplicación . . . . . . . . . . . . . . . . . . . . 443 4. Verificar la aplicación . . . . . . . . . . . . . . . . . . . 449 5. Personalizar la aplicación . . . . . . . . . . . . . . . . . 453 a. Modificar la presentación de las páginas . . . . . . . . . 453 b. Crear y utilizar listas de valores . . . . . . . . . . . . . 458 c. Agregar controles a los datos introducidos . . . . . . . . . 465 Índice . . . . . . . . . . . . . . . . . . . . . . . 472 14 Oracle 11g - SQL, PL/SQL, SQL*Plus