SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
Cindy Adriana Bohórquez Santana
 
Plantilla para proyecto de ciencias
Plantilla para proyecto de cienciasPlantilla para proyecto de ciencias
Plantilla para proyecto de ciencias
Mtra. Alma Maite Barajas Cárdenas
 
06 diagrama de clases1
06 diagrama de clases106 diagrama de clases1
06 diagrama de clases1
ViReal
 
Clase4
Clase4Clase4
Clase4
rilara
 
Presentacion JFlex USC (Compiladores) 2011B
Presentacion JFlex USC (Compiladores) 2011BPresentacion JFlex USC (Compiladores) 2011B
Presentacion JFlex USC (Compiladores) 2011B
Kuritzuthian
 
Instrucciones basicas c_(2)
Instrucciones basicas c_(2)Instrucciones basicas c_(2)
Instrucciones basicas c_(2)
Efren Pacheco
 
Programación java 2
Programación java 2Programación java 2
Programación java 2
Victor Chalian
 
Funciones excel
Funciones excel Funciones excel
Funciones excel
leivastefania
 
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
santosisidrorivera
 
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
Clara Patricia Avella Ibañez
 
CÁLCULO RELACIONAL
CÁLCULO RELACIONALCÁLCULO RELACIONAL
CÁLCULO RELACIONAL
RAFAEL HONORES VERA
 

La actualidad más candente (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
 

Destacado

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
Eliud Gamez Gomez
 
Luis felipe sarmiento expo
Luis felipe sarmiento expoLuis felipe sarmiento expo
Luis felipe sarmiento expo
lsarmiento01
 
Clase2
Clase2Clase2
Clase2
victdiazm
 
ispositivos de almacenamiento
ispositivos de almacenamiento ispositivos de almacenamiento
ispositivos de almacenamiento
Jose Andres hernandez florez
 
Padlet
PadletPadlet
Padlet
chrhdlg
 
Semana 1 -_quick_tours
Semana 1 -_quick_toursSemana 1 -_quick_tours
Semana 1 -_quick_tours
victdiazm
 
Clase 17
Clase 17Clase 17
Clase 17
victdiazm
 
Un poeta.ppt
Un poeta.pptUn poeta.ppt
Un poeta.ppt
Claudio Ogaz
 
Trabajo final iap1501_semestre01_2011
Trabajo final iap1501_semestre01_2011Trabajo final iap1501_semestre01_2011
Trabajo final iap1501_semestre01_2011
victdiazm
 
Presentacion reciclaje
Presentacion reciclajePresentacion reciclaje
Presentacion reciclaje
Richard Ruiz Romero
 
Ingles 1
Ingles 1Ingles 1
2016 1 28 material de seminario
2016 1 28 material de seminario2016 1 28 material de seminario
2016 1 28 material de seminario
Colectivo Toleranciaydemocracia
 
Becas manutencion 2015-2016
Becas manutencion 2015-2016Becas manutencion 2015-2016
Becas manutencion 2015-2016
escolaresitm
 
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
Colectivo Toleranciaydemocracia
 
Html guia
Html guiaHtml guia
Html guia
victdiazm
 
Parcial
ParcialParcial
Presentacionmailmergenestorgarcia
PresentacionmailmergenestorgarciaPresentacionmailmergenestorgarcia
Presentacionmailmergenestorgarcia
nestormanati
 
Trabajo
TrabajoTrabajo
Trabajo
MafeQano
 
Presentación1
Presentación1Presentación1
Presentación1
Carolain Garcia
 

Destacado (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
 

Similar a Semana 1 3 variables en bloques plsql

Transformar en spss
Transformar en spssTransformar en spss
Transformar en spss
Yle Quintana
 
Semana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientosSemana 8 y 9 subprogramas procedimientos
Semana 8 y 9 subprogramas procedimientos
victdiazm
 
Preparación de datos
Preparación de datosPreparación de datos
Preparación de datos
candelariaselvan02
 
Preparación de Datos en SPSS
Preparación de Datos en SPSSPreparación de Datos en SPSS
Preparación de Datos en SPSS
Karina Landero
 
SPSS BASICO
SPSS BASICOSPSS BASICO
SPSS BASICO
Leix MH
 
Transformación de Datos en SPSS
Transformación de Datos en SPSSTransformación de Datos en SPSS
Transformación de Datos en SPSS
Karina Landero
 
Expo 7
Expo 7Expo 7
Tsql
TsqlTsql
Preparacion de datos 6
Preparacion de datos 6Preparacion de datos 6
Preparacion de datos 6
Iz Mt Cheli
 
01-declaracion-de-variables
01-declaracion-de-variables01-declaracion-de-variables
01-declaracion-de-variables
UAL
 
PL/SQL
PL/SQLPL/SQL
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
Carlos Luna
 
Tsql
TsqlTsql
Tema5 sql - dml
Tema5   sql - dmlTema5   sql - dml
Tema5 sql - dml
Alvaro Loustau
 
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
José Ricardo Tillero Giménez
 
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
Emilceleons
 
RecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptxRecodificacióndevariablesensofwareSPSS.pptx
RecodificacióndevariablesensofwareSPSS.pptx
josemgaetef
 
Presentacion C++
Presentacion C++Presentacion C++
Presentacion C++
Marco Bau
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
Kelly Rafael O
 
Expresiones y control del flujo Java
Expresiones y control del flujo JavaExpresiones y control del flujo Java
Expresiones y control del flujo Java
Alexander Ramirez Melendez
 

Similar a Semana 1 3 variables en bloques plsql (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
Preparación de datosPreparación de datos
Preparación de datos
 
Preparación de Datos en SPSS
Preparación de Datos en SPSSPreparación de Datos en SPSS
Preparación de Datos en SPSS
 
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
 

Más 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_permissions
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
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_permissions
victdiazm
 
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
victdiazm
 
Semana 16 usuarios y grupos
Semana 16 usuarios y gruposSemana 16 usuarios y grupos
Semana 16 usuarios y grupos
victdiazm
 
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
victdiazm
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basico
victdiazm
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
victdiazm
 
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
victdiazm
 
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
victdiazm
 
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
victdiazm
 
Script
ScriptScript
Script
victdiazm
 
Control1 victoria diaz
Control1   victoria diazControl1   victoria diaz
Control1 victoria diaz
victdiazm
 
Compresor
CompresorCompresor
Compresor
victdiazm
 

Más 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
 

Semana 1 3 variables en bloques plsql

  • 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