Declarando Variables Pl SQL

59
DECLARANDO VARIABLES PL/SQL

Transcript of Declarando Variables Pl SQL

Page 1: Declarando Variables Pl SQL

DECLARANDO VARIABLES PL/SQL

Page 2: Declarando Variables Pl SQL

AGENDA

• VARIABLES INTRODUCCIÓN

• EXAMINAR LOS TIPOS DE DATOS VARIABLES Y EL ATRIBUTO %TYPE

• EXAMINAR VARIABLES LAZO

Page 3: Declarando Variables Pl SQL

USO DE VARIABLES

LAS VARIABLES SE PUEDEN UTILIZAR PARA:

EL ALMACENAMIENTO TEMPORAL DE LOS DATOS

LA MANIPULACIÓN DE LOS VALORES ALMACENADOS

REUTILIZACIÓN

Page 4: Declarando Variables Pl SQL

USO DE VARIABLES

CON PL / SQL, PUEDE DECLARAR VARIABLES Y, A CONTINUACIÓN, UTILIZAR EN SQL Y SENTENCIAS DE PROCEDIMIENTO.

LAS VARIABLES SE UTILIZAN PRINCIPALMENTE PARA EL ALMACENAMIENTO DE DATOS Y LA MANIPULACIÓN DE LOS VALORES ALMACENADOS. LA SENTENCIA RECUPERA FIRST_NAME Y DEPARTMENT_ID DE LA TABLA. SI TIENE QUE MANIPULAR FIRST_NAME O DEPARTMENT_ID, USTED TIENE QUE ALMACENAR EL VALOR RECUPERADO.

LAS VARIABLES SE UTILIZAN PARA ALMACENAR TEMPORALMENTE EL VALOR. USTED PUEDE UTILIZAR EL VALOR ALMACENADO EN ESTAS VARIABLES PARA EL PROCESAMIENTO Y MANIPULACIÓN DE DATOS. LAS VARIABLES PUEDEN ALMACENAR CUALQUIER OBJETO PL / SQL, TALES COMO VARIABLES, TIPOS, CURSORES Y SUBPROGRAMAS.

LA REUTILIZACIÓN ES OTRA VENTAJA DE LA DECLARACIÓN DE VARIABLES. DESPUÉS QUE SE DECLARAN LAS VARIABLES, SE PUEDEN UTILIZAR VARIAS VECES EN UNA APLICACIÓN HACIENDO REFERENCIA A ELLAS VARIAS VECES EN VARIAS DECLARACIONES.

Page 5: Declarando Variables Pl SQL

REQUISITOS PARA LOS NOMBRES DE VARIABLE

UN NOMBRE DE VARIABLE:

DEBE COMENZAR CON UNA LETRA

PUEDEN INCLUIR LETRAS O NÚMEROS

PUEDE INCLUIR CARACTERES ESPECIALES (COMO $, _, Y #)

DEBE CONTENER NO MÁS DE 30 CARACTERES

NO DEBE INCLUIR LAS PALABRAS RESERVADAS

Page 6: Declarando Variables Pl SQL

MANEJO DE VARIABLES EN PL / SQL

LAS VARIABLES SON:

DECLARADAS E (OPCIONALMENTE) INICIALIZADAS EN EL SEGMENTO O SECCION DECLARATIVA

SE UTILIZA Y ASIGNA NUEVOS VALORES EN LA SECCIÓN EJECUTABLE

PUEDE SER PASADA COMO PARÁMETROS A SUBPROGRAMAS PL / SQL

SE UTILIZA PARA MANTENER LA SALIDA DE UN SUBPROGRAMA PL / SQL

Page 7: Declarando Variables Pl SQL

MANEJO DE VARIABLES EN PL / SQLUSTED PUEDE UTILIZAR LAS VARIABLES DE LAS SIGUIENTES MANERAS :

DECLARAR E INICIALIZAR EN LA SECCIÓN DE DECLARACIÓN : PUEDE DECLARAR VARIABLES EN LA PARTE DECLARATIVA DE CUALQUIER BLOQUE PL / SQL , SUBPROGRAMA O PAQUETE. oDECLARACIONES ASIGNAR ESPACIO DE ALMACENAMIENTO PARA UN VALOR ,

ESPECIFIQUE SU TIPO DE DATOS Y EL NOMBRE DE LA UBICACIÓN DE ALMACENAMIENTO PARA QUE PUEDA HACER REFERENCIA A ELLA .

oDECLARACIONES TAMBIÉN PUEDE ASIGNAR UN VALOR INICIAL E IMPONER LA RESTRICCIÓN NOT NULL EN LA VARIABLE.

oDEBE DECLARAR UNA VARIABLE ANTES DE HACER REFERENCIA A ELLA EN OTRAS DECLARACIONES , INCLUIDAS OTRAS DECLARACIONES DECLARATIVAS .

Page 8: Declarando Variables Pl SQL

MANEJO DE VARIABLES EN PL / SQL

USE Y ASIGNE NUEVOS VALORES EN LA SECCIÓN EJECUTABLE : o EL VALOR ACTUAL DE LA VARIABLE PUEDE SER REEMPLAZADO CON UN NUEVO

VALOR .

PASAR COMO PARÁMETROS A SUBPROGRAMAS PL / SQL : o LOS SUBPROGRAMAS PUEDEN TOMAR PARÁMETROS . PUEDE PASAR VARIABLES

COMO PARÁMETROS A SUBPROGRAMAS.

UTILÍCELOS PARA MANTENER LA SALIDA DE UN SUBPROGRAMA PL / SQL: o LAS VARIABLES PUEDEN SER USADOS PARA SOSTENER EL VALOR DEVUELTO POR

UNA FUNCIÓN.

Page 9: Declarando Variables Pl SQL

DECLARAR E INICIALIZAR VARIABLES PL / SQL

Page 10: Declarando Variables Pl SQL

DECLARAR E INICIALIZAR VARIABLES PL / SQL

DEBE DECLARAR TODOS LOS IDENTIFICADORES DE PL / SQL EN LA SECCIÓN DE DECLARACIÓN ANTES DE HACER REFERENCIA EN EL BLOQUE PL / SQL.

USTED TIENE LA OPCIÓN DE ASIGNAR UN VALOR INICIAL A UNA VARIABLE.

LA SINTAXIS : o IDENTIFICADOR ES EL NOMBRE DE LA VARIABLEo CONSTANTE RESTRINGE LA VARIABLE DE MANERA QUE SU VALOR NO SE PUEDE

CAMBIAR ( LAS CONSTANTES DEBEN SER INICIALIZADAS . )o TIPO DE DATOS ES UN ESCALAR , COMPUESTO, DE REFERENCIA O TIPO DE DATOS LOBo NOT NULL RESTRINGE LA VARIABLE PARA QUE CONTENGA UN VALOR ( NOT NULL

SE DEBEN INICIALIZAR LAS VARIABLES . )o EXPR CUALQUIER EXPRESIÓN DE PL / SQL QUE PUEDE SER UNA EXPRESIÓN LITERAL ,

OTRA VARIABLE, O UNA EXPRESIÓN QUE LOS OPERADORES Y FUNCIONES

Page 11: Declarando Variables Pl SQL

DECLARAR E INICIALIZAR VARIABLES PL / SQL

Page 12: Declarando Variables Pl SQL

DECLARAR E INICIALIZAR VARIABLES PL / SQL

EN EL PRIMER BLOQUE, LA VARIABLE V_MYNAME ES DECLARADA PERO NO INICIALIZADA.

- UN VALOR DE “JOHN” SE ASIGNA A LA VARIABLE EN LA SECCIÓN EJECUTABLE.

- LOS LITERALES DE CADENA DEBEN IR ENTRE COMILLAS SIMPLES. SI LA CADENA TIENE COMILLAS COMO “TODAY’S DATE,” LA CADENA SERÍA 'TODAY' 'S DATE'.

- EL OPERADOR DE ASIGNACIÓN ES: ": =".

- EL PROCEDIMIENTO PUT_LINE SE INVOCA AL PASAR LA VARIABLE V_MYNAME. EL VALOR DE LA VARIABLE SE CONCATENA CON LA CADENA 'MY NAME IS:'.

Page 13: Declarando Variables Pl SQL

DECLARAR E INICIALIZAR VARIABLES PL / SQL

- SALIDA DE ESTE BLOQUE ANÓNIMO ES:

EN EL SEGUNDO BLOQUE, LA VARIABLE V_MYNAME SE DECLARA Y SE INICIALIZA EN LA SECCIÓN DECLARATIVA. V_MYNAME CONTIENE EL VALOR DE “JOHN” DESPUÉS DE LA INICIALIZACIÓN. ESTE VALOR SE MANIPULA EN LA SECCIÓN EJECUTABLE DEL BLOQUE. LA SALIDA DE ESTE BLOQUE ANÓNIMO ES:

Page 14: Declarando Variables Pl SQL

DELIMITADORES EN CADENAS DE CARACTERES

Page 15: Declarando Variables Pl SQL

DELIMITADORES EN CADENAS DE CARACTERES

SI LA CADENA CONTIENE UN APÓSTROFO (IDÉNTICA A UNA COMILLA SIMPLE), DEBE DOBLAR LAS COMILLAS, COMO EN EL SIGUIENTE EJEMPLO:

v_event VARCHAR2(15):='Father''s day';

LA PRIMERA COMILLA ACTÚA COMO CARÁCTER DE ESCAPE. ESTO HACE QUE LA CADENA SE COMPLIQUE, ESPECIALMENTE SI USTED TIENE INSTRUCCIONES SQL COMO CADENAS GRANDES. SE PUEDE ESPECIFICAR CUALQUIER CARÁCTER QUE NO ESTÁ PRESENTE EN LA CADENA COMO UN DELIMITADOR. LA DIAPOSITIVA MUESTRA CÓMO UTILIZAR LA NOTACIÓN q' PARA ESPECIFICAR EL DELIMITADOR. EL EJEMPLO USA ! Y [ COMO DELIMITADORES. CONSIDEREMOS EL SIGUIENTE EJEMPLO:

v_event := q'!Father's day!';

Page 16: Declarando Variables Pl SQL

DELIMITADORES EN CADENAS DE CARACTERES

SE PUEDE COMPARAR ESTO CON EL PRIMER EJEMPLO. USTED COMIENZA LA CADENA CON q' SI DESEA UTILIZAR UN DELIMITADOR. EL CARÁCTER QUE SIGUE LA NOTACIÓN ES EL DELIMITADOR UTILIZADO. ESCRIBA LA CADENA DESPUÉS DE ESPECIFICAR EL DELIMITADOR, CIERRE EL DELIMITADOR, Y CERRAR LA ANOTACIÓN CON UNA COMILLA SIMPLE. EL SIGUIENTE EJEMPLO MUESTRA CÓMO UTILIZAR [ COMO DELIMITADOR:

v_event := q'[Mother's day]';

Page 17: Declarando Variables Pl SQL

AGENDA

• VARIABLES INTRODUCCIÓN

• EXAMINAR LOS TIPOS DE DATOS VARIABLES Y EL ATRIBUTO %TYPE

• EXAMINAR VARIABLES LAZO

Page 18: Declarando Variables Pl SQL

TIPOS DE VARIABLES

PL/SQL variables:

Scalar

Reference

Large object (LOB)

Composite

Non-PL/SQL variables:

Bind variables

Page 19: Declarando Variables Pl SQL

TIPOS DE VARIABLES TODA VARIABLE PL / SQL TIENE UN TIPO DE DATOS , QUE ESPECIFICA UN FORMATO

DE ALMACENAMIENTO , LAS LIMITACIONES , Y UN RANGO DE VALORES VÁLIDOS . PL/SQL SOPORTA LA MAYORÍA DE CATEGORÍAS DE TIPOS DE DATOS , INCLUYENDO ESCALAR, DE REFERENCIA, DE OBJETOS GRANDES ( LOB) , Y COMPUESTO.

TIPOS DE DATOS ESCALARES : TIPOS DE DATOS ESCALARES TIENEN UN SOLO VALOR. EL VALOR DEPENDE DEL TIPO DE DATOS DE LA VARIABLE . POR EJEMPLO , LA VARIABLE V_MYNAME ES DE TIPO VARCHAR2 . POR LO TANTO , V_MYNAME PUEDE CONTENER UN VALOR DE CADENA . PL/SQL TAMBIÉN ADMITE VARIABLES BOOLEANAS.

LOS TIPOS DE DATOS DE REFERENCIA: LOS TIPOS DE DATOS DE REFERENCIA TIENEN VALORES , LLAMADOS PUNTEROS , QUE APUNTAN A UNA UBICACIÓN DE ALMACENAMIENTO.

Page 20: Declarando Variables Pl SQL

TIPOS DE VARIABLES LOS TIPOS DE DATOS DE OBJETOS GRANDES: LOS TIPOS DE DATOS LOB TIENEN

VALORES , LLAMADOS LOCALIZADORES , QUE ESPECIFICAN LA UBICACIÓN DE LOS OBJETOS GRANDES (COMO IMÁGENES GRÁFICAS ) QUE SE ALMACENAN FUERA DE LA TABLA .

LOS TIPOS DE DATOS COMPUESTOS : TIPOS DE DATOS COMPUESTOS SE ENCUENTRAN DISPONIBLES MEDIANTE EL USO DE LA COLECCIÓN DE PL/SQL Y LAS VARIABLES DE REGISTRO . COLECCIONES PL/SQL Y LOS REGISTROS CONTIENEN ELEMENTOS INTERNOS QUE SE PUEDEN TRATAR COMO VARIABLES INDIVIDUALES.

VARIABLES NON-PL/SQL INCLUYEN VARIABLES DEL LENGUAJE PRINCIPAL DECLARADAS EN PROGRAMAS DE PRECOMPILADOR , CAMPOS DE PANTALLA DE APLICACIONES DE FORMULARIOS Y VARIABLES DEL LENGUAJE PRINCIPAL .

Page 21: Declarando Variables Pl SQL

TIPOS DE VARIABLES

• TRUE representa un valor booleano. • 15-JAN-09 representa una fecha.

• La imagen representa un BLOB. • El rollo de película representa un BFILE.

• El texto de la llamada puede representar un tipo de datos VARCHAR2 o CLOB.

• 256.120,08 representa un tipo de datos NUMBER con precisión y escala.

• El nombre de la ciudad de Atlanta representa un tipo de datos VARCHAR2.

Page 22: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

Siga las convenciones de nombres consistentes.

Utilizar identificadores significativos para las variables.

Inicialice las variables que se designan como NOT NULL yCONSTANTE.

Inicialice las variables con el operador de asignación (: =) o la palabra clave DEFAULT:

Declarar un identificador por línea para una mejor legibilidad y mantenimiento del código.

Page 23: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

AQUÍ HAY ALGUNAS PAUTAS A SEGUIR CUANDO SE DECLARA VARIABLES PL / SQL.

MANTENGA LA NOMENCLATURA DE NOMBRES, POR EJEMPLO, PODRÍA UTILIZAR EL NAME PARA REPRESENTAR UNA VARIABLE Y C_NAME PARA REPRESENTAR UNA CONSTANTE. DEL MISMO MODO, PARA NOMBRAR UNA VARIABLE, PUEDE UTILIZAR V_FNAME. LA CLAVE ESTÁ EN APLICAR EL CONVENIO DE DENOMINACIÓN COHERENTE PARA FACILITAR SU IDENTIFICACIÓN.

UTILIZAR IDENTIFICADORES SIGNIFICATIVOS Y APROPIADOS PARA LAS VARIABLES. POR EJEMPLO, CONSIDERE EL USO DE SALARY Y SAL_WITH_COMMISSION EN LUGAR DE SALARY1 Y SALARY2.

Page 24: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

SI UTILIZA LA RESTRICCIÓN NOT NULL, DEBE ASIGNAR UN VALOR CUANDO SE DECLARA LA VARIABLE.

EN DECLARACIONES DE CONSTANTES, LA PALABRA CLAVE CONSTANT DEBE PRECEDER EL ESPECIFICADOR DE TIPO. LOS SIGUIENTES NOMBRES DE DECLARACIÓN DE UNA CONSTANTE DE TIPO NUMBER Y ASIGNA EL VALOR DE 50.000 A LA CONSTANTE. UNA CONSTANTE SE DEBE INICIALIZAR EN SU DECLARACIÓN, DE LO CONTRARIO, OBTENDRÁ UN ERROR DE COMPILACIÓN. DESPUÉS DE INICIALIZAR UNA CONSTANTE, NO PUEDE CAMBIAR SU VALOR.

SAL CONSTANT NUMBER := 50000.00;

Page 25: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

Evite el uso de nombres de columna como identificadores.

Utilice la restricción NOT NULL cuando la variable debe tenerun valor.

Page 26: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

INICIALICE LA VARIABLE DE UNA EXPRESIÓN CON EL OPERADOR DE ASIGNACIÓN (: = ) O CON LA PALABRA RESERVADA DEFAULT. SI NO SE ASIGNA UN VALOR INICIAL , EL NUEVO CONTIENE NULL DE FORMA PREDETERMINADA HASTA QUE ASIGNE UN VALOR. PARA ASIGNAR O REASIGNAR UN VALOR A UNA VARIABLE, SE ESCRIBE UNA SENTENCIA DE ASIGNACIÓN PL / SQL. SIN EMBARGO , ES UNA BUENA PRÁCTICA DE PROGRAMACIÓN INICIALIZAR TODAS LAS VARIABLES.

DOS OBJETOS PUEDEN TENER EL MISMO NOMBRE SÓLO SI ESTÁN DEFINIDOS EN DIFERENTES BLOQUES. DONDE COEXISTEN , SE PUEDE CALIFICAR CON ETIQUETAS Y UTILIZARLAS.

Page 27: Declarando Variables Pl SQL

DIRECTRICES PARA DECLARAR E INICIALIZAR VARIABLES PL / SQL

EVITE EL USO DE NOMBRES DE COLUMNA COMO IDENTIFICADORES. SI SE PRODUCEN LAS VARIABLES PL / SQL EN SENTENCIAS SQL Y TENER EL MISMO NOMBRE QUE UNA COLUMNA, EL SERVIDOR ORACLE ASUME QUE ES LA COLUMNA QUE SE ESTÁ HACIENDO REFERENCIA . AUNQUE EL EJEMPLO DE CÓDIGO EN LA DIAPOSITIVA FUNCIONA , EL CÓDIGO QUE SE ESCRIBE UTILIZANDO EL MISMO NOMBRE PARA UNA TABLA DE BASE DE DATOS Y UNA VARIABLE QUE NO ES FÁCIL DE LEER Y MANTENER.

IMPONER LA RESTRICCIÓN NOT NULL CUANDO LA VARIABLE DEBE CONTENER UN VALOR . NO ES POSIBLE ASIGNAR VALORES NULOS A UNA VARIABLE QUE SE DEFINE COMO NOT NULL. LA RESTRICCIÓN NOT NULL DEBE SER SEGUIDA POR UNA CLÁUSULA DE INICIALIZACIÓN.

Page 28: Declarando Variables Pl SQL

CONVENCIONES DE NOMENCLATURA DE ESTRUCTURAS PL / SQL

Page 29: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

MANTIENEN UN ÚNICO VALOR

NO TIENEN COMPONENTES INTERNOS

Page 30: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

PL / SQL PROPORCIONA UNA VARIEDAD DE TIPOS DE DATOSPREDEFINIDOS. POR EJEMPLO, PUEDE ELEGIR DESDE UN ENTERO,PUNTO FLOTANTE, CARÁCTER, BOOLEANO, FECHA, COLECCIÓN, Y LOSTIPOS LOB.

UN TIPO DE DATOS ESCALAR POSEE UN VALOR ÚNICO Y NO TIENECOMPONENTES INTERNOS. TIPOS DE DATOS ESCALARES SE PUEDENCLASIFICAR EN CUATRO CATEGORÍAS: NÚMERO, CARÁCTER, FECHA YBOOLEANOS. LOS TIPOS DE DATOS CARACTERES Y NÚMERO SUBTIPOSQUE ASOCIAN UN TIPO BASE PARA UNA RESTRICCIÓN. POR EJEMPLO,INTEGER Y POSITIVE SON SUBTIPOS DEL TIPO BASE NUMBER.

Page 31: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

CHAR [(maximum_length)]

VARCHAR2 (maximum_length)

NUMBER [(precision, scale)]

BINARY_INTEGER

PLS_INTEGER

BOOLEAN

BINARY_FLOAT

BINARY_DOUBLE

Page 32: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

Page 33: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

Page 34: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

DATE

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR TO MONTH

INTERVAL DAY TO SECOND

Page 35: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

Page 36: Declarando Variables Pl SQL

TIPOS DE DATOS ESCALARES

Page 37: Declarando Variables Pl SQL

Declarando variables ESCALARES

• v_emp_job: Variable to store an employee job title

• v_count_loop: Variable to count the iterations of a loop; initialized to 0

• v_dept_total_sal:Variable to accumulate the total salary for a department; initialized to 0

• v_orderdate: Variable to store the ship date of an order; initialized to one week from today

• c_tax_rate: Constant variable for the tax rate (which never changes throughout the PL/SQL block); set to 8.25

• v_valid: Flag to indicate whether a piece of data is valid or invalid; initialized to TRUE

Page 38: Declarando Variables Pl SQL

ATRIBUTO %TYPE

SE UTILIZA PARA DECLARAR UNA VARIABLE DE ACUERDO A:

UNA DEFINICIÓN DE LA COLUMNA DE BASE DE DATOS

OTRA VARIABLE DECLARADA

TIENE EL PREFIJO:

LA TABLA Y LA COLUMNA NOMBRE DE LA BASE DE DATOS

EL NOMBRE DE LA VARIABLE DECLARADA

Page 39: Declarando Variables Pl SQL

ATRIBUTO %TYPE

LAS VARIABLES PL / SQL SE SUELEN DECLARAR PARA SOSTENER YMANIPULAR LOS DATOS ALMACENADOS EN UNA BASE DE DATOS. ALDECLARAR LAS VARIABLES PL / SQL PARA MANTENER LOS VALORES DECOLUMNA, DEBE ASEGURARSE DE QUE LA VARIABLE ES DEL TIPO DE DATOSCORRECTO. SI NO ES ASÍ, SE PRODUCE UN ERROR DE PL / SQL DURANTE LAEJECUCIÓN. SI USTED TIENE QUE DISEÑAR GRANDES SUBPROGRAMAS,ESTO PUEDE LLEVAR MUCHO TIEMPO Y PROPENSO A ERRORES.

EN LUGAR PUEDE UTILIZAR EL ATRIBUTO %TYPE PARA DECLARAR UNAVARIABLE DE ACUERDO CON OTRA QUE HAYA SIDO DECLARADA. ELATRIBUTO %TYPE SE UTILIZA CON MAYOR FRECUENCIA CUANDO EL VALORALMACENADO EN LA VARIABLE SE DERIVA DE UNA TABLA EN LA BASE DEDATOS. CUANDO SE UTILIZA EL ATRIBUTO %TYPE PARA DECLARAR UNAVARIABLE, DEBE ANTEPONER EL NOMBRE DE LA TABLA DE BASE DE DATOSY EL NOMBRE DE LA COLUMNA.

Page 40: Declarando Variables Pl SQL

DECLARANDO VARIABLES %TYPE

Page 41: Declarando Variables Pl SQL

DECLARANDO VARIABLES %TYPE

DECLARAR VARIABLES PARA ALMACENAR EL APELLIDO DE UN EMPLEADO. LA VARIABLE V_EMP_LNAME SE DEFINE PARA SER DEL MISMO TIPO DE DATOS COMO LA COLUMNA DE LA V_LAST_NAME EN LA TABLA EMPLEADOS. EL ATRIBUTO %TYPE PROPORCIONA EL TIPO DE DATOS DE UNA COLUMNA DE BASE DE DATOS.

DECLARAR VARIABLES PARA ALMACENAR EL SALDO DE UNA CUENTA BANCARIA, ASÍ COMO EL SALDO MÍNIMO, QUE ES DE 1.000. LA VARIABLE V_MIN_BALANCE SE DEFINE PARA SER DEL MISMO TIPO DE DATOS COMO LA VARIABLE V_BALANCE. EL ATRIBUTO %TYPE PROPORCIONA EL TIPO DE DATOS DE UNA VARIABLE.

UNA RESTRICCIÓN DE LA COLUMNA DE BASE DE DATOS NO NULO NO SE APLICA A LAS VARIABLES QUE SE DECLARAN UTILIZANDO %TYPE. POR LO TANTO, SI SE DECLARA UNA VARIABLE UTILIZANDO EL ATRIBUTO TYPE% QUE UTILIZA UNA BASE DE DATOS DE LA COLUMNA DEFINIDA COMO NOT NULL, PUEDE ASIGNAR EL VALOR NULL A LA VARIABLE.

Page 42: Declarando Variables Pl SQL

Declarando variables BOOLEANAS

SÓLO LOS VALORES TRUE, FALSE, Y NULL SE PUEDEN ASIGNAR A UNA VARIABLE BOOLEANA.

LAS EXPRESIONES CONDICIONALES UTILIZAN LOS OPERADORES LÓGICOS AND Y OR Y EL OPERADOR UNARIO NO PARA COMPROBAR LOS VALORES DE LAS VARIABLES.

LAS VARIABLES SIEMPRE SE PRODUCEN TRUE, FALSE, O NULL.

ARITMÉTICOS, DE CARÁCTER, Y LA FECHA EXPRESIONES SE PUEDEN UTILIZAR PARA DEVOLVER UN VALOR BOOLEANO.

Page 43: Declarando Variables Pl SQL

Declarando variables BOOLEANASCON PL / SQL, USTED PUEDE COMPARAR LAS VARIABLES EN SQL Y SENTENCIAS DE PROCEDIMIENTO. ESTAS COMPARACIONES, LLAMADAS EXPRESIONES BOOLEANAS, CONSISTEN EN EXPRESIONES SIMPLES O COMPLEJAS, SEPARADOS POR OPERADORES RELACIONALES. EJEMPLOS:

EMP_SAL1: 50000;EMP_SAL2: = 60,000;

LA SIGUIENTE EXPRESIÓN PRODUCE VERDADERO:EMP_SAL1 <EMP_SAL2

DECLARAR E INICIALIZAR UNA VARIABLE BOOLEANA:DECLAREflag BOOLEAN := FALSE;BEGINflag := TRUE;END;

Page 44: Declarando Variables Pl SQL

VARIABLES DE TIPO DE DATOS LOB

Page 45: Declarando Variables Pl SQL

VARIABLES DE TIPO DE DATOS LOB

LOS OBJETOS GRANDES ( LOB ) TIENEN EL PROPÓSITO DE ALMACENAR UNA GRANCANTIDAD DE DATOS. UNA COLUMNA DE BASE DE DATOS PUEDE SER DE LA CATEGORÍADE LOB. CON LA CATEGORÍA DE TIPOS DE DATOS LOB, PUEDE ALMACENAR LOS BLOQUESDE DATOS NO ESTRUCTURADOS (TALES COMO TEXTO, IMÁGENES GRÁFICAS , CLIPS DEVÍDEO , Y LAS FORMAS DE ONDA DE SONIDO ) DE HASTA 128 TERABYTES EN FUNCIÓNDEL TAMAÑO DE BLOQUE DE BASE DE DATOS.

EL GRAN OBJETO DE CARACTERES ( CLOB ) TIPO DE DATOS SE UTILIZA PARA ALMACENARGRANDES BLOQUES DE DATOS DE CARACTERES EN LA BASE DE DATOS .

EL OBJETO BINARIO GRANDE (BLOB ) TIPO DE DATOS QUE SE UTILIZA PARA ALMACENAROBJETOS BINARIOS GRANDES NO ESTRUCTURADOS O ESTRUCTURADOS EN LA BASE DEDATOS . AL INSERTAR O RECUPERAR ESOS DATOS HACIA O DESDE LA BASE DE DATOS , LABASE DE DATOS NO INTERPRETA LOS DATOS. LAS APLICACIONES EXTERNAS QUEUTILIZAN ESTOS DATOS DEBEN INTERPRETAR LOS DATOS.

Page 46: Declarando Variables Pl SQL

VARIABLES DE TIPO DE DATOS LOB

EL ARCHIVO ( BFILE ) TIPO DE DATOS BINARIOS SE UTILIZA PARA ALMACENAR GRANDES ARCHIVOS BINARIOS. A DIFERENCIA DE OTROS LOB , BFILES SE ALMACENAN FUERA DE LA BASE DE DATOS Y NO EN LA BASE DE DATOS . ELLOS PODRÍAN ESTAR OPERANDO LOS ARCHIVOS DEL SISTEMA .

EL CARÁCTER LENGUA OBJETO GRANDE NACIONAL ( NCLOB ) TIPO DE DATOS SE UTILIZA PARA ALMACENAR GRANDES BLOQUES DE DATOS UNICODE NCHAR EN LA BASE DE DATOS DE UN SOLO BYTE O DE VARIOS BYTES DE ANCHO FIJO .

Page 47: Declarando Variables Pl SQL

TIPOS DE DATOS COMPUESTOS: REGISTROS Y COLECCIONES

Page 48: Declarando Variables Pl SQL

TIPOS DE DATOS COMPUESTOS: REGISTROS Y COLECCIONES

COMO SE MENCIONÓ ANTERIORMENTE, UN TIPO DE DATOS ESCALAR POSEE UN VALOR ÚNICO Y NO TIENE COMPONENTES INTERNOS.LOS TIPOS DE DATOS COMPUESTOS LLAMADOS REGISTROS PL / SQL Y PL / SQL COLECCIONES TIENEN COMPONENTES INTERNOS QUE SE PUEDEN TRATAR COMO VARIABLES INDIVIDUALES.

• EN UN REGISTRO DE PL / SQL, LOS COMPONENTES INTERNOS PUEDEN SER DE DIFERENTES TIPOS DE DATOS, Y SE LLAMAN CAMPOS. SE ACCEDE A CADA CAMPO CON LA SIGUIENTE SINTAXIS: record_name.field_name. UNA VARIABLE DE REGISTRO PUEDE CONTENER UNA FILA DE LA TABLA, O ALGUNAS COLUMNAS DE UNA FILA DE LA TABLA. CADA CAMPO DE REGISTRO CORRESPONDE A UNA COLUMNA DE LA TABLA.

• EN UNA COLECCIÓN DE PL / SQL, LOS COMPONENTES INTERNOS SON SIEMPRE DEL MISMO TIPO DE DATOS, Y SE DENOMINAN ELEMENTOS. SE ACCEDE A CADA ELEMENTO POR SU SUBÍNDICE ÚNICO. LAS LISTAS Y LAS MATRICES SON EJEMPLOS CLÁSICOS DE LAS COLECCIONES. HAY TRES TIPOS DE COLECCIONES DE PL / SQL: ASOCIATIVO MATRICES, TABLAS ANIDADAS, Y LOS TIPOS VARRAY.

Page 49: Declarando Variables Pl SQL

AGENDA

• VARIABLES INTRODUCCIÓN

• EXAMINAR LOS TIPOS DE DATOS VARIABLES Y EL ATRIBUTO %TYPE

• EXAMINAR VARIABLES LAZO

Page 50: Declarando Variables Pl SQL

VARIABLES BIND

VARIABLES DE VINCULACIÓN SON:

CREADAS EN EL ENTORNO

TAMBIÉN LLAMADAS VARIABLES HOST

CREADO CON LA PALABRA CLAVE VARIABLE, SE REQUIERE CUANDO SE UTILIZA SQL PLUS Y SQL DEVELOPER

SE UTILIZA EN SENTENCIAS SQL Y BLOQUES PL / SQL

SON CONSULTADAS O ACCESADAS AUN INCLUSO DESPUÉS DE QUE SE EJECUTE EL BLOQUE PL/SQL

LOS VALORES PUEDEN SER DE SALIDA CON EL COMANDO PRINT.

Page 51: Declarando Variables Pl SQL

VARIABLES BIND

USOS DE VARIABLES BIND:

SE CREAN EN EL AMBIENTE Y NO EN LA SECCIÓN DECLARATIVA DE UN BLOQUE PL/SQL. POR LO TANTO, LAS VARIABLES SON ACCESIBLES INCLUSO DESPUÉS DE EJECUTAR EL BLOQUE. CUANDO SE CREA VARIABLES DE ENLACE SE PUEDEN UTILIZAR Y MANIPULAR POR VARIOS SUBPROGRAMAS. PUEDEN SER UTILIZADOS EN SENTENCIAS SQL Y BLOQUES PL/SQL COMO CUALQUIER OTRA VARIABLE.

NOTA: UNA VARIABLE DE VINCULACIÓN ES UNA VARIABLE DE ENTORNO, PERO NO ES UNA VARIABLE GLOBAL.

Page 52: Declarando Variables Pl SQL

VARIABLES BIND

CREACIÓN DE VARIABLES DE VINCULACIÓN

PARA CREAR UNA VARIABLE DE VINCULACIÓN EN SQL DEVELOPER, UTILICE EL COMANDO VARIABLE. POR EJEMPLO, SE DECLARA UNA VARIABLE DE TIPO NUMBER Y VARCHAR2 DE LA SIGUIENTE MANERA:

VARIABLE RETURN_CODE NUMBER

VARIABLE RETURN_MSG VARCHAR2(30)

Page 53: Declarando Variables Pl SQL

VARIABLES BIND

VISUALIZACIÓN DE VALORES DE VARIABLES SE UNEN

PUEDE HACER REFERENCIA A LA VARIABLE DE VINCULACIÓN UTILIZANDO SQL DEVELOPER Y VER SU VALOR USANDO EL COMANDO PRINT.

EJEMPLOPUEDE HACER REFERENCIA A UNA VARIABLE BIND EN UN PROGRAMA DE PL/SQL PRECEDIENDO LA VARIABLE CON DOS PUNTOS.POR EJEMPLO, EL SIGUIENTE BLOQUE PL/SQL CREA Y UTILIZA LA VARIABLE B_RESULT. LA SALIDA RESULTANTE DEL COMANDO PRINT ES LA SIGUIENTE:

VARIABLE b_result NUMBER

BEGIN

SELECT (SALARY*12) + NVL(COMMISSION_PCT,0) INTO :b_result

FROM employees WHERE employee_id = 144;

END;

/

PRINT b_result

Page 54: Declarando Variables Pl SQL

REFERENCIANDO VARIABLES BIND

Page 55: Declarando Variables Pl SQL

REFERENCIANDO VARIABLES BIND

COMO SE DIJO ANTERIORMENTE, DESPUÉS DE CREAR UNA VARIABLE DE VINCULACIÓN, PUEDE HACER REFERENCIA A ESA VARIABLE EN CUALQUIER OTRA INSTRUCCIÓN SQL O PL PROGRAMA / SQL.

EN EL EJEMPLO, B_EMP_SALARY SE CREA COMO UNA VARIABLE DE VINCULACIÓN EN EL BLOQUE PL / SQL. ENTONCES, SE UTILIZA EN LA INSTRUCCIÓN SELECT QUE SIGUE.

CUANDO SE EJECUTA EL / BLOQUE PL SQL, APARECE EL SIGUIENTE RESULTADO:

Page 56: Declarando Variables Pl SQL

USANDO AUTOPRINT CON VARIABLES BIND

Page 57: Declarando Variables Pl SQL

USANDO AUTOPRINT CON VARIABLES BIND

UTILICE EL COMANDO SET AUTOPRINT ON PARA MOSTRAR AUTOMÁTICAMENTE LAS VARIABLES DE ENLACE UTILIZADAS EN BLOQUE PL / SQL.

EN EL EJEMPLO DE CÓDIGO:

• UNA VARIABLE DE VINCULACIÓN DENOMINADO B_EMP_SALARY SE CREA Y AUTOPRINT ESTÁ ENCENDIDO.• UNA VARIABLE LLAMADA V_EMPNO SE DECLARA, Y UNA VARIABLE DE SUSTITUCIÓN SE UTILIZA PARA RECIBIR LA ENTRADA DEL USUARIO.• POR ÚLTIMO, SE UTILIZAN LAS VARIABLES DE ENLACE Y VARIABLES TEMPORALES EN LA SECCIÓN EJECUTABLE DEL BLOQUE PL/SQL.CUANDO UN NÚMERO DE EMPLEADO VÁLIDO SE INTRODUCE, EN ESTE CASO 178 LA SALIDA DE LA VARIABLE DE VINCULACIÓN SE IMPRIME AUTOMÁTICAMENTE. LA VARIABLE DE VINCULACIÓN CONTIENE DEL SUELDO CORRESPONDIENTE AL NÚMERO DE EMPLEADO QUE ES PROPORCIONADA POR EL USUARIO.

Page 58: Declarando Variables Pl SQL

QUIZ

The %TYPE attribute:

1. Se utiliza para declarar una variable de acuerdo con la definición de una columna de base de datos2. Se utiliza para declarar una variable de acuerdo a un conjunto de columnas de una tabla o vista de base3. Se utiliza para declarar una variable de acuerdo con la definición de otra variable declarada4. Se prefija con la tabla de base de datos y la columna nombre o el nombre de la variable declarada

Page 59: Declarando Variables Pl SQL

RESPUESTA: 1 , 3, 4

EL %TYPE ATTRIBUTE

LAS VARIABLES PL/SQL SE SUELEN DECLARAR PARA SOSTENER Y MANIPULARLOS DATOS ALMACENADOS EN UNA BASE DE DATOS . AL DECLARAR LASVARIABLES PL/SQL PARA MANTENER LOS VALORES DE COLUMNA , DEBEASEGURARSE DE QUE LA VARIABLE ES DEL TIPO DE DATOS CORRECTO YPRECISIÓN. SI NO ES ASÍ, SE PRODUCE UN ERROR DE PL / SQL DURANTE LAEJECUCIÓN. SI USTED TIENE QUE DISEÑAR GRANDES SUBPROGRAMAS , ESTOPUEDE LLEVAR MUCHO TIEMPO Y PROPENSO A ERRORES.

EN LUGAR DE DIFÍCIL CODIFICACIÓN DEL TIPO DE DATOS Y LA PRECISIÓN DEUNA VARIABLE , PUEDE UTILIZAR EL ATRIBUTO % TYPE PARA DECLARAR UNAVARIABLE DE ACUERDO CON OTRA QUE HAYA SIDO DECLARADA COLUMNAVARIABLE O BASE DE DATOS. EL ATRIBUTO % TYPE SE UTILIZA CON MAYORFRECUENCIA CUANDO EL VALOR ALMACENADO EN LA VARIABLE SE DERIVADE UNA TABLA EN LA BASE DE DATOS