SlideShare une entreprise Scribd logo
1  sur  19
Variables en Bloques
       PL/SQL
     Semana 1/3
Aprendizajes esperados

• Construye procedimientos almacenados,
  triggers de base de datos, cursores y funciones
  que ayuden o implementen directamente
  soluciones a la lógica de negocio recogida en la
  captura de requerimientos de un sistema
Conceptos Claves
• Las variables y constantes se declaran en la
  sección declarativa del bloque
• La asignación de valores a las variables puede
  ser realizada en cualquiera de las partes del
  bloque
Sintáxis
• En general, la sintaxis para declarar un variable y/o constante es la siguiente:
<Nombre_variable> [constant] <tipo_dato> [not null][:=valor];
• Donde:
  <Nombre_variable>: Obligatorio. Es el nombre que se dará a la variable o constante
   [constant]: Opcional. Indica que lo declarado es una constante. Su valor no puede ser modificado en tiempo
  de ejecución
   <tipo_dato>: Obligatorio. Indica el tipo de dato que tendrá la variable o constante
  [not null]: Opcional. Indica que la variable o constante no puede tomar un valor nulo
  [:=valor]: Opcional. Asigna un valor a la variable o constante
Algunas consideraciones
• Una variable o constante no inicializada, asumirá el valor
  null
• Las variables o constantes «not null», no pueden asumir el
  valor nulo, por lo cual deben ser inicializadas
• La inicialización puede incluir cualquier expresión de
  PL/SQL. Dicha expresión debe retornar el mismo tipo de
  dato de la variable o constante
Ejemplo de Declaraciones
Declaraciones Implícitas
• Se pueden declarar variables o constantes de forma que
  «asuman» el tipo de datos de otra variable o constantes
  u otra estructura de la base de datos
  • %Type: Se utiliza para que la variable declarada de tipo
    escalar, asuma el tipo de datos de otra variable o constante
  • %Rowtype: Se utiliza para definir una variable de tipo fila
Ejemplo de declaraciones
       implícitas
Ejemplo de usos
Ejemplo de usos
Ejemplo de usos
• Dada la tabla «auto», con la estructura que se muestra a
  continuación, se asignarán valores a la variable
Ejemplo de usos
Asignando valores con
                                                  sentencia Select
• Otra forma de asignar valores a las variables es utilizando la sentencia «Select…into»
• Su estructura es la siguiente:
   Select lista_valores into lista_variables
   From tablas_origen
• Donde:
   • Lista_valores: Lista de campos , otras variables o valores que serán almacenados en la lista de campos. Se separa por comas (,) en caso de existir mas de un valor
   • Lista_variables: Lista de variables que recibirán los valores extraídos. Se separa por comas (,) en caso de existir mas de una variable
   • Tablas_origen: Tablas de donde proviene la información
Ejemplo de asignación
mediante Select .. Into
Ejemplo de asignación
mediante Select .. Into
Consideraciones respecto a la
      asignación mediante Select ..
                  Into
• Para el select .. into se espera siempre que devuelva sólo un valor o una fila (según sea el caso de variable escalar o variable de tipo fila)
• Si la sentencia no devuelve valor alguno o devuelve más de uno, la ejecución del código arrojará error
  • No Data Found: No encuentra datos
  • Too Many Rows: Muchas filas encontradas
Alcance de las variables
• Las variables tienen un alcance local, es decir, son visibles sólo dentro del bloque al cual pertenecen
• Para los bloques anidados, las variables declaradas en el bloque contenedor (bloque que contiene a otro bloque) son visibles para el bloque contenido
• Las variables declaradas en el bloque contenido (bloque que se declara dentro de otro bloque) son visibles sólo en forma local a su bloque. El bloque contenedor no tiene
  acceso a dicha variable
Ejemplo de Alcance de
Variables (Uso Correcto)
Ejemplo de Alcance de
Variables (Uso Incorrecto)




                    Descripción del error
                         existente

Contenu connexe

Tendances

Tendances (11)

Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Plantilla para proyecto de ciencias
Plantilla para proyecto de cienciasPlantilla para proyecto de ciencias
Plantilla para proyecto de ciencias
 
06 diagrama de clases1
06 diagrama de clases106 diagrama de clases1
06 diagrama de clases1
 
Clase4
Clase4Clase4
Clase4
 
Presentacion JFlex USC (Compiladores) 2011B
Presentacion JFlex USC (Compiladores) 2011BPresentacion JFlex USC (Compiladores) 2011B
Presentacion JFlex USC (Compiladores) 2011B
 
Instrucciones basicas c_(2)
Instrucciones basicas c_(2)Instrucciones basicas c_(2)
Instrucciones basicas c_(2)
 
Programación java 2
Programación java 2Programación java 2
Programación java 2
 
Funciones excel
Funciones excel Funciones excel
Funciones excel
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Java
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
CÁLCULO RELACIONAL
CÁLCULO RELACIONALCÁLCULO RELACIONAL
CÁLCULO RELACIONAL
 

En vedette (20)

CRISTIANO SIN APELLIDOS by eliud gamez sr
CRISTIANO SIN APELLIDOS by eliud gamez srCRISTIANO SIN APELLIDOS by eliud gamez sr
CRISTIANO SIN APELLIDOS by eliud gamez sr
 
Luis felipe sarmiento expo
Luis felipe sarmiento expoLuis felipe sarmiento expo
Luis felipe sarmiento expo
 
Clase2
Clase2Clase2
Clase2
 
ispositivos de almacenamiento
ispositivos de almacenamiento ispositivos de almacenamiento
ispositivos de almacenamiento
 
Padlet
PadletPadlet
Padlet
 
Semana 1 -_quick_tours
Semana 1 -_quick_toursSemana 1 -_quick_tours
Semana 1 -_quick_tours
 
Clase 17
Clase 17Clase 17
Clase 17
 
Un poeta.ppt
Un poeta.pptUn poeta.ppt
Un poeta.ppt
 
Trabajo final iap1501_semestre01_2011
Trabajo final iap1501_semestre01_2011Trabajo final iap1501_semestre01_2011
Trabajo final iap1501_semestre01_2011
 
Presentacion reciclaje
Presentacion reciclajePresentacion reciclaje
Presentacion reciclaje
 
Ingles 1
Ingles 1Ingles 1
Ingles 1
 
Tema 4
Tema 4Tema 4
Tema 4
 
2016 1 28 material de seminario
2016 1 28 material de seminario2016 1 28 material de seminario
2016 1 28 material de seminario
 
Becas manutencion 2015-2016
Becas manutencion 2015-2016Becas manutencion 2015-2016
Becas manutencion 2015-2016
 
Teología de la Liberación : Ayer maldita y perseguida, hoy bendita y elogiada
Teología de la Liberación : Ayer maldita y perseguida, hoy bendita y elogiadaTeología de la Liberación : Ayer maldita y perseguida, hoy bendita y elogiada
Teología de la Liberación : Ayer maldita y perseguida, hoy bendita y elogiada
 
Html guia
Html guiaHtml guia
Html guia
 
Parcial
ParcialParcial
Parcial
 
Presentacionmailmergenestorgarcia
PresentacionmailmergenestorgarciaPresentacionmailmergenestorgarcia
Presentacionmailmergenestorgarcia
 
Trabajo
TrabajoTrabajo
Trabajo
 
Presentación1
Presentación1Presentación1
Presentación1
 

Similaire à VariablesPLSQLSemana1

Transformar en spss
Transformar en spssTransformar en spss
Transformar en spssYle Quintana
 
Semana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientosSemana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientosvictdiazm
 
Preparación de Datos en SPSS
Preparación de Datos en SPSSPreparación de Datos en SPSS
Preparación de Datos en SPSSKarina Landero
 
SPSS BASICO
SPSS BASICOSPSS BASICO
SPSS BASICOLeix MH
 
Transformación de Datos en SPSS
Transformación de Datos en SPSSTransformación de Datos en SPSS
Transformación de Datos en SPSSKarina Landero
 
Preparacion de datos 6
Preparacion de datos 6Preparacion de datos 6
Preparacion de datos 6Iz Mt Cheli
 
01-declaracion-de-variables
01-declaracion-de-variables01-declaracion-de-variables
01-declaracion-de-variablesUAL
 
Operadores en excel ana emilce leon suarez
Operadores en excel ana emilce leon suarezOperadores en excel ana emilce leon suarez
Operadores en excel ana emilce leon suarezEmilceleons
 
RecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptxRecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptxjosemgaetef
 
Presentacion C++
Presentacion C++Presentacion C++
Presentacion C++Marco Bau
 

Similaire à VariablesPLSQLSemana1 (20)

Transformar en spss
Transformar en spssTransformar en spss
Transformar en spss
 
Semana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientosSemana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientos
 
Preparación de Datos en SPSS
Preparación de Datos en SPSSPreparación de Datos en SPSS
Preparación de Datos en SPSS
 
Preparación de datos
Preparación de datosPreparación de datos
Preparación de datos
 
SPSS BASICO
SPSS BASICOSPSS BASICO
SPSS BASICO
 
Transformación de Datos en SPSS
Transformación de Datos en SPSSTransformación de Datos en SPSS
Transformación de Datos en SPSS
 
Expo 7
Expo 7Expo 7
Expo 7
 
Tsql
TsqlTsql
Tsql
 
Preparacion de datos 6
Preparacion de datos 6Preparacion de datos 6
Preparacion de datos 6
 
01-declaracion-de-variables
01-declaracion-de-variables01-declaracion-de-variables
01-declaracion-de-variables
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Tsql
TsqlTsql
Tsql
 
Tema5 sql - dml
Tema5   sql - dmlTema5   sql - dml
Tema5 sql - dml
 
Clase 3 El lenguaje DML de SQL
Clase 3 El lenguaje DML de SQLClase 3 El lenguaje DML de SQL
Clase 3 El lenguaje DML de SQL
 
Operadores en excel ana emilce leon suarez
Operadores en excel ana emilce leon suarezOperadores en excel ana emilce leon suarez
Operadores en excel ana emilce leon suarez
 
RecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptxRecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptx
 
Presentacion C++
Presentacion C++Presentacion C++
Presentacion C++
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
 
Expresiones y control del flujo Java
Expresiones y control del flujo JavaExpresiones y control del flujo Java
Expresiones y control del flujo Java
 

Plus de victdiazm

Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsvictdiazm
 
Semana 9 standard io and pipes guia de ejercicios resuelta
Semana 9   standard io and pipes  guia de ejercicios resueltaSemana 9   standard io and pipes  guia de ejercicios resuelta
Semana 9 standard io and pipes guia de ejercicios resueltavictdiazm
 
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
Semana 7 y 8   the linux filesystem guia de ejercicios resueltaSemana 7 y 8   the linux filesystem guia de ejercicios resuelta
Semana 7 y 8 the linux filesystem guia de ejercicios resueltavictdiazm
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resueltavictdiazm
 
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3   file ownerships and permissions guia de ejercicios resueltaSemana 2 y 3   file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3 file ownerships and permissions guia de ejercicios resueltavictdiazm
 
Semana 1 quick tours guia de ejercicios resuelta
Semana 1   quick tours guia de ejercicios resueltaSemana 1   quick tours guia de ejercicios resuelta
Semana 1 quick tours guia de ejercicios resueltavictdiazm
 
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltaSemana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltavictdiazm
 
Semana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashSemana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashvictdiazm
 
Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsvictdiazm
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltavictdiazm
 
Semana 16 usuarios y grupos
Semana 16 usuarios y gruposSemana 16 usuarios y grupos
Semana 16 usuarios y gruposvictdiazm
 
Semana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesSemana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesvictdiazm
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basicovictdiazm
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesosvictdiazm
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesvictdiazm
 
Semana 8 herramientas de procesos de string
Semana 8  herramientas de procesos de stringSemana 8  herramientas de procesos de string
Semana 8 herramientas de procesos de stringvictdiazm
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxvictdiazm
 
Control1 victoria diaz
Control1   victoria diazControl1   victoria diaz
Control1 victoria diazvictdiazm
 

Plus de victdiazm (20)

Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissions
 
Semana 9 standard io and pipes guia de ejercicios resuelta
Semana 9   standard io and pipes  guia de ejercicios resueltaSemana 9   standard io and pipes  guia de ejercicios resuelta
Semana 9 standard io and pipes guia de ejercicios resuelta
 
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
Semana 7 y 8   the linux filesystem guia de ejercicios resueltaSemana 7 y 8   the linux filesystem guia de ejercicios resuelta
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resuelta
 
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3   file ownerships and permissions guia de ejercicios resueltaSemana 2 y 3   file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
 
Semana 1 quick tours guia de ejercicios resuelta
Semana 1   quick tours guia de ejercicios resueltaSemana 1   quick tours guia de ejercicios resuelta
Semana 1 quick tours guia de ejercicios resuelta
 
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltaSemana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
 
Semana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashSemana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bash
 
Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissions
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
 
Semana 16 usuarios y grupos
Semana 16 usuarios y gruposSemana 16 usuarios y grupos
Semana 16 usuarios y grupos
 
Semana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesSemana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redes
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basico
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipes
 
Semana 8 herramientas de procesos de string
Semana 8  herramientas de procesos de stringSemana 8  herramientas de procesos de string
Semana 8 herramientas de procesos de string
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linux
 
Script
ScriptScript
Script
 
Control1 victoria diaz
Control1   victoria diazControl1   victoria diaz
Control1 victoria diaz
 
Compresor
CompresorCompresor
Compresor
 

VariablesPLSQLSemana1

  • 1. Variables en Bloques PL/SQL Semana 1/3
  • 2. Aprendizajes esperados • Construye procedimientos almacenados, triggers de base de datos, cursores y funciones que ayuden o implementen directamente soluciones a la lógica de negocio recogida en la captura de requerimientos de un sistema
  • 3. Conceptos Claves • Las variables y constantes se declaran en la sección declarativa del bloque • La asignación de valores a las variables puede ser realizada en cualquiera de las partes del bloque
  • 4. Sintáxis • En general, la sintaxis para declarar un variable y/o constante es la siguiente: <Nombre_variable> [constant] <tipo_dato> [not null][:=valor]; • Donde: <Nombre_variable>: Obligatorio. Es el nombre que se dará a la variable o constante [constant]: Opcional. Indica que lo declarado es una constante. Su valor no puede ser modificado en tiempo de ejecución <tipo_dato>: Obligatorio. Indica el tipo de dato que tendrá la variable o constante [not null]: Opcional. Indica que la variable o constante no puede tomar un valor nulo [:=valor]: Opcional. Asigna un valor a la variable o constante
  • 5. Algunas consideraciones • Una variable o constante no inicializada, asumirá el valor null • Las variables o constantes «not null», no pueden asumir el valor nulo, por lo cual deben ser inicializadas • La inicialización puede incluir cualquier expresión de PL/SQL. Dicha expresión debe retornar el mismo tipo de dato de la variable o constante
  • 7. Declaraciones Implícitas • Se pueden declarar variables o constantes de forma que «asuman» el tipo de datos de otra variable o constantes u otra estructura de la base de datos • %Type: Se utiliza para que la variable declarada de tipo escalar, asuma el tipo de datos de otra variable o constante • %Rowtype: Se utiliza para definir una variable de tipo fila
  • 11. Ejemplo de usos • Dada la tabla «auto», con la estructura que se muestra a continuación, se asignarán valores a la variable
  • 13. Asignando valores con sentencia Select • Otra forma de asignar valores a las variables es utilizando la sentencia «Select…into» • Su estructura es la siguiente: Select lista_valores into lista_variables From tablas_origen • Donde: • Lista_valores: Lista de campos , otras variables o valores que serán almacenados en la lista de campos. Se separa por comas (,) en caso de existir mas de un valor • Lista_variables: Lista de variables que recibirán los valores extraídos. Se separa por comas (,) en caso de existir mas de una variable • Tablas_origen: Tablas de donde proviene la información
  • 16. Consideraciones respecto a la asignación mediante Select .. Into • Para el select .. into se espera siempre que devuelva sólo un valor o una fila (según sea el caso de variable escalar o variable de tipo fila) • Si la sentencia no devuelve valor alguno o devuelve más de uno, la ejecución del código arrojará error • No Data Found: No encuentra datos • Too Many Rows: Muchas filas encontradas
  • 17. Alcance de las variables • Las variables tienen un alcance local, es decir, son visibles sólo dentro del bloque al cual pertenecen • Para los bloques anidados, las variables declaradas en el bloque contenedor (bloque que contiene a otro bloque) son visibles para el bloque contenido • Las variables declaradas en el bloque contenido (bloque que se declara dentro de otro bloque) son visibles sólo en forma local a su bloque. El bloque contenedor no tiene acceso a dicha variable
  • 18. Ejemplo de Alcance de Variables (Uso Correcto)
  • 19. Ejemplo de Alcance de Variables (Uso Incorrecto) Descripción del error existente