Sistemas
3. VARIABLES Ya hemos visto algunas variables utilizadas en el capítulo anterior, además de algunos tipos de datos. Con PL/SQL se pueden declarar variables y luego utilizarlas en nuestro código. Vamos como en cualquier lenguaje, jejeje.
• • • •
Declararemos las variables en la sección de declaración. Asignaremos valores a las variables dentro de la sección de código.Pasaremos valores a los bloques PL/SQL mediante parámetros. Recogeremos resultados en variables de salida.
La declaración de variables ya la hemos visto antes, aunque no con todas sus opciones. Especificamos el nombre de la variable, el tipo y opcionalmente un valor inicial y una restricción NOT NULL e incluso un valor por defecto. DECLARE nombre_variable Ejemplos: DECLARE nombre_empleado contadorporcentaje fecha_alta correcto
tipo_variable [NOT NULL] [:= expr | DEFAULT expr] ;
VARCHAR2(30); NUMBER(6) NOT NULL := 0 ; NUMBER(3) DEFAULT 16 ; DATE DEFAULT sysdate ; BOOLEAN NOT NULL := TRUE ;
NOT NULL : Es opcional y restringe la variable para que tenga que contener un valor no nulo. Las variables NOT NULL deben ser inicializadas obligatoriamente. := expr : El símbolo de asignación, comoya hemos visto es el := y expr es cualquier expresión PL/SQL que puede ser un valor, otra variable o una expresión que contenga operadores y funciones. DEFAULT expr : Valor por defecto de la variable. expr es cualquier expresión PL/SQL que puede ser un valor, otra variable o una expresión que contenga operadores y funciones. También podemos cambie su valor. declarar una constante, prohibiendo asíque se
c_comision CONSTANT NUMBER(5,2) := 10.50 ; En las declaraciones de constantes. La palabra clave CONSTANT debe preceder al tipo de dato, y debe ser inicializada en la declaración. REGLAS PARA NOMBRES DE VARIABLES Dos variables pueden tener el mismo nombre. Sí, habéis leído bien. Siempre y cuando estén definidas en distintos bloques. Si se trata de bloques anidados, la vigente es ladefinida en el bloque actual. No se deben poner nombres de variables que coincidan con nombres de campos (columnas) de las tablas con las que se va a trabajar. Esto es así
Pág 1 de 16
Curso de PL/SQL
porque si se da la coincidencia, prevalece el nombre del campo de la tabla, es decir, la variable sería “invisible” para el bloque en cuestión (excepto en alguna circunstancia). No es buenapráctica, desde luego. Los nombres de variables no deben pasar de 30 caracteres. El primero debe ser una letra y los demás pueden ser letras, números o símbolos especiales. Los literales de cadenas deben ir entre comillas simples ('Hola mundo'). Si necesitas incluir una comilla simple en tu cadena, solo tienes ponerlo dos veces ('Hola ''amigo'' mio --> Hola 'amigo' mio). 3.1 TIPOS DE VARIABLES Todas lasvariables PL/SQL tienen un tipo de dato que especifica un formato de almacenamiento, restricciones y un rango válido de valores. Los tipos de variables en PL/SQL son variados:
• • • •
Escalares: Contienen un valor único. Compuestos: Permiten que se definan y manipulen grupos de campos en bloques PL/SQL. El típico es el registro (record). Referenciados: Son los llamados punteros. No los veremosen este curso. LOB (Large Objects): Contienen valores llamados localizadores que especifican la ubicación de lobs como imágenes y que están almacenados fuera de la base de datos. Tampoco los veremos en este curso. Los principales tipos de variables escalares son:
•
•
•
•
•
• • •
VARCHAR2(longitud_máxima): Caracteres de longitud variable de hasta 32767 bytes (en Oracle 8i) Nohay tamaño por defecto. longitud_máxima especifica exactamente eso: la longitud para esa variable. NUMBER(posiciones, decimales): Números de coma flotante y fija. El tamaño total de la variable viene dado por posiciones (incluyen los decimales pero no el punto decimal) y los decimales vienen especificados por decimales. Ejemplo: porcentaje NUMBER (5,2) --> 5 posiciones en total, de las cuales 2...
Regístrate para leer el documento completo.