Programación de bases de datos con
PL / SQL
2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos.
Objetivos
•Esta lección cubre los siguientes objetivos:
-Declare y use tipos de datos escalares en PL / SQL
-Definir pautas para declarar e inicializar variables
PL / SQL
-Identificar los beneficios de anclar tipos de datos con el atributo%
TYPE
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 3
Propósito
•La mayoría de las variables que define y usa en PL / SQL tienen
tipos de datos escalares
•Una variable puede tener un tipo de datos explícito, como
VARCHAR2, o puede tener automáticamente los mismos datos.
escriba como una columna de tabla en la base de datos
•Aprenderá los beneficios de basar algunas variables en las
columnas de la tabla.
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 4
Declaración de variables de carácter
•Todas las variables deben declararse
•Los datos en sí mismos determinarán qué tipo de datos
asignará a cada variable.
•Los tipos de datos de caracteres más utilizados incluyen
CHAR y VARCHAR2
•Columnas que pueden exceder el límite de 32,767 caracteres de
un VARCHAR2 podría definirse usando LONG, pero debería ser
definido usando CLOB
DECLARAR
v_country_id CHAR (2);
v_country_name VARCHAR2 (70);
v_country_rpt CLOB;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 5
Declaración de variables numéricas
•Los tipos de datos numéricos incluyen NUMBER,
INTEGER, PLS_INTEGER, BINARY_FLOAT y varios otros
•Agregar la palabra clave CONSTANT restringe la variable para
que su valor no cambie
•Las constantes deben inicializarse
DECLARE
v_employee_id NUMBER(6,0);
v_loop_count INTEGER := 0;
c_tax_rate CONSTANT NUMBER(3,2) := 8.25;
...
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 6
Declaración de variables de fecha
•Los tipos de datos de fecha incluyen DATE, TIMESTAMP y
TIMESTAMP WITH TIME ZONE
DECLARE
v_date1 DATE := '05-Apr-2015’;
v_date2 DATE := v_date1 + 7;
v_date3 TIMESTAMP := SYSDATE;
v_date4 TIMESTAMP WITH TIME ZONE := SYSDATE;
BEGIN
DBMS_OUTPUT.PUT_LINE(v_date1);
DBMS_OUTPUT.PUT_LINE(v_date2);
DBMS_OUTPUT.PUT_LINE(v_date3);
DBMS_OUTPUT.PUT_LINE(v_date4);
END;
•La elección entre DATE, TIMESTAMP, etc., está
determinada por los datos que necesita saber en el futuro.
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 7
Declaración de variables BOOLEAN
•BOOLEAN es un tipo de datos que almacena uno de los tres
valores posibles utilizados para los cálculos lógicos: VERDADERO,
FALSO o NULO
DECLARE
v_valid1 BOOLEAN := TRUE;
v_valid2 BOOLEAN;
v_valid3 BOOLEAN NOT NULL := FALSE;
BEGIN
IF v_valid1 THEN
DBMS_OUTPUT.PUT_LINE('Test is TRUE’);
ELSE
DBMS_OUTPUT.PUT_LINE('Test is FALSE’);
END IF;
END;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 8
Usando Variables BOOLEANAS
• Al usar variables BOOLEAN:
-Solo los valores TRUE, FALSE y NULL se pueden asignar a una
variable BOOLEAN
-Las expresiones condicionales usan los operadores lógicos AND y
OR, y el operador NOT para verificar los valores de las variables
-Las variables siempre dan como resultado VERDADERO, FALSO o
NULO
-Puede usar expresiones aritméticas, de caracteres y de fecha
para devolver un valor BOOLEANO
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 9
Directrices para declarar variables PL / SQL
•Use nombres de variables significativos y apropiados
•Siga las convenciones de nomenclatura
•Utilice v_name para representar una variable y c_name para
representar una constante
•Declare un identificador por línea para una mejor
legibilidad, mantenimiento del código y comentarios más
fáciles
•Utilice la restricción NOT NULL cuando la variable debe
contener un valor
•Use la restricción CONSTANT cuando el valor de la variable no
deba cambiar dentro del bloque
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 10
Directrices para declarar variables PL / SQL
•Establecer valores iniciales para BOOLEAN y NUMBER
•Evite el uso de nombres de columnas como identificadores
DECLARE
first_name VARCHAR2(20);
BEGIN
SELECT first_name
INTO first_name
FROM employees
WHERE last_name = 'Vargas’;
DBMS_OUTPUT.PUT_LINE(first_name);
END;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 11
Definición de variables con el atributo% TYPE
•Las variables derivadas de los campos de la base de datos
deben definirse utilizando el atributo% TYPE, que tiene varias
ventajas
•Por ejemplo, en la tabla EMPLOYEES, la columna
first_name se define como VARCHAR2 (20)
•En un bloque PL / SQL, puede definir una variable coincidente
•con cualquiera:
v_first_name VARCHAR2 (20);
•O
v_first_name employees.last_name% TYPE;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 12
Uso del atributo% TYPE
•Mire esta definición de tabla parcial de la tabla EMPLOYEES
•Luego, mire el código en la siguiente diapositiva.
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 13
Uso del atributo% TYPE
•Este bloque PL / SQL almacena el nombre correcto en la variable
v_first_name
•Pero, ¿qué pasa si la columna de la tabla se modifica más tarde para que
sea VARCHAR2 (25) y un nombre de más de 20 caracteres? ¿está
agregado?
DECLARE
v_first_name VARCHAR2(20);
BEGIN
SELECT first_name
INTO v_first_name
FROM employees
WHERE last_name = 'Vargas’;
DBMS_OUTPUT.PUT_LINE(v_first_name);
END;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 14
Uso del atributo% TYPE
•Usando el atributo% TYPE para definir un "datos anclados
escriba "para v_first_name resolvería el problema
•De lo contrario, un programador tendría que buscar y
modificar cada lugar en cada programa con una variable
definida para contener el nombre de un empleado.
DECLARE
v_first_name employees.first_name%TYPE;
BEGIN
SELECT first_name
INTO v_first_name
FROM employees
WHERE last_name = 'Vargas’;
DBMS_OUTPUT.PUT_LINE(v_first_name);
END;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 15
Uso del atributo% TYPE
• El atributo% TYPE:
• -Se utiliza para dar automáticamente a una variable el mismo tipo
y tamaño de datos que:
•Una columna de base de datos
• Otra variable declarada
• -Tiene el prefijo de cualquiera de los siguientes:
•El nombre de la tabla de la base de datos y el nombre de la
columna.
•El nombre de la otra variable declarada
PLSQL 2-4
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. dieciséis
Usar tipos de datos escalares
Uso del atributo% TYPE
•Sintaxis
:
identificador nombre_tabla.nombre_columna% TYPE;
identificador identificador%TYPE;
•Ejemplos:
DECLARE
v_first_name employees.first_name%TYPE;
v_salary employess.salary%TYPE;
v_old_salary v_salary%TYPE;
v_new_salary v_salary%TYPE;
v_balance NUMBER(10,2);
v_min_balance v_balance%TYPE := 1000;
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 17
Ventajas del atributo% TYPE
•Las ventajas del atributo% TYPE son:
•-Puede evitar errores causados por una falta de
coincidencia de tipos de datos o una precisión incorrecta
•-No es necesario cambiar la declaración de la variable
si cambia la definición de la columna de la tabla
•-De lo contrario, si ya ha declarado algunas variables para una
columna de tabla en particular sin usar el atributo% TYPE,
entonces el bloque PL / SQL puede devolver errores si se
modifica la columna de la tabla.
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 18
Ventajas del atributo% TYPE
•Las ventajas del atributo% TYPE son:
-Cuando usa el atributo% TYPE, PL / SQL determina el tipo de datos
y el tamaño de la variable cuando se compila el bloque
-Esto asegura que dicha variable sea siempre compatible con la
columna que se utiliza para completarla.
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 19
Terminología
•Los términos clave utilizados en esta lección
incluyen:
-%ESCRIBE
-Booleano
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 20
Resumen
•En esta lección, debería haber aprendido a:
-Declare y use tipos de datos escalares en PL / SQL
-Definir pautas para declarar e inicializar variables PL / SQL
-Identificar los beneficios de anclar tipos de datos con el atributo% TYPE
PLSQL 2-4
Usar tipos de datos escalares
Copyright © 2020, Oracle y /o sus afiliados. Reservados todos los derechos. 21