5 min de lectura

Aprende Programación: Introducción a PL/SQL Parte 1 #PLSQL

Programación
Aprende Programación: Introducción a PL/SQL Parte 1 #PLSQL

Share this page

Vamos a iniciar un nuevo proyecto en SoyGeek.news, en donde estaremos compartiendo algunas guías básicas y avanzadas referentes al mundo de la programación. Conforme vayamos avanzando sería bueno ir leyendo sus comentarios y sugerencias. Comenzaremos con PL/SQL, el cual puede usar utilizado en la mayoría de bases de datos (BD) relacionales, es particular este se centrara en BDs Oracle.

¿Qué es PL/SQL?

Procedural Lenguaje / Structured Query Language (Lenguaje Procedimental / Lenguaje de Consulta Estructurado) es un lenguaje de programación incrustado en Oracle. Este soporta todas las consultas, ya que la manipulación de datos que usa es la misma que en SQL, incluyendo nuevas características:

  • Manejo de variables
  • Estructuras modulares
  • Estructura modulares
  • Estructura de control de flujo y toma de decisiones
  • Control de excepciones.

El lenguaje PL/SQL está incorporado en  los servidores de la base de datos y en las Herramientas de Oracle como Forms y Reports.

En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden construir bloques como parte de scripts SQL *Plus.

Tipos de Datos

Para empezar a utilizar PL/SQL, se debe de conocer los tipos de datos soportados por el lenguaje.

Tipo de dato / Sintaxis Oracle 8i Oracle 9i Descripción
decimal(p, e) La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.
dec(p, e) Por ejemplo: decimal(3,1) es un número de 3 digitos y solo uno es decimal.
double precision
float La precisión máxima es de 38 decimales.
int
integer
numeric(p, e) La precisión máxima es de 38 dígitos. Donde p es la precisión y e la escala.
number(p, e) Por ejemplo: numeric(7,2) es un número que tiene 5 dígitos antes del decimal y 2 dígitos después del decimal.
real
smallint
char (tamaño) Hasta 32767 bytes en PLSQL. Donde tamaño es el número de caracteres a almacenar. Son cadenas de ancho fijo. Se rellena con espacios.
Hasta 2000 bytes en Oracle 8i/9i.
varchar2 (tamaño) Hasta 32767 bytes en PLSQL. Donde tamaño es el número de caracteres a almacenar. Son cadenas de ancho variable.
Hasta 4000 bytes en Oracle 8i/9.i
long Hasta 2 gigabytes. Son cadenas de ancho variable.
raw Hasta 32767 bytes en PLSQL. Son cadenas binarias de ancho variable.
Hasta 2000 bytes en Oracle 8i/9i.
long raw Hasta 2 gigabytes. Son cadenas binarias de ancho variable.
date Una fecha entre el 1 de enero de 4712 a. C. y el 31 de diciembre de 9999 d. C.
timestamp (fractional seconds precision) No soportado por Oracle 8i. fractional seconds precisiondebe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos.
Por ejemplo: timestamp(6)
timestamp (fractional seconds precision) with time zone No soportado por Oracle 8i. fractional seconds precisiondebe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos; con un valor de desplazamiento de zona horaria.
Por ejemplo: timestamp(5) with time zone
timestamp (fractional seconds precision) with local time zone No soportado por Oracle 8i. fractional seconds precisiondebe ser un número entre 0 y 9. (El valor por defecto es 6) Incluye año, mes día, hora, minutos y segundos; con una zona horaria expresada como la zona horaria actual.
Por ejemplo: timestamp(4) with local time zone
interval year (year precision) to month No soportado por Oracle 8i. year precision debe ser un número entre 0 y 9. (El valor por defecto es 2) Período almacenado en años y meses.
Por ejemplo: interval year(4) to month
interval day (day precision) el bloque en el fichero de la base de datos; Datos binarios de ancho fijo. Cada registro de la base de datos tiene una dirección física o rowid.
RRRR es la fila del bloque; FFFFF es el fichero de la base de datos.
urowid [tamaño] Hasta 2000 bytes. Rowid universal. Donde tamaño es opcional.
boolean Válido en PLSQL, este tipo de datos no existe en Oracle 8i/9i.
nchar (tamaño) Hasta 32767 bytes en PLSQL. Hasta 2000 bytes en Oracle 8i/9i. Donde tamaño es el número de caracteres a almacenar. Cadena NLS de ancho fijo.
nvarchar2 (tamaño) Hasta 32767 bytes en PLSQL. Hasta 4000 bytes en Oracle 8i/9i. Donde tamaño es el número de caracteres a almacenar. Cadena NLS de ancho variable.
bfile Hasta 4 gigabytes. Localizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos.
blob Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto binario dentro de la base de datos.
clob Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos.
nclob Hasta 4 gigabytes. Localizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos.

Es necesario saber el alcance que puede llegar a tener la tabla anterior para hacer una buena implementación de soluciones en base a funciones y procedimientos con fines específicos según la lógica del negocio o necesidades del tratamiento de datos.

Identificadores

Un identificador es un nombre que se le pone a un objeto que interviene en un programa, que puede ser variable, constante, procedimientos, excepciones, cursores… Debe tener un máximo de 30 caracteres que empiece siempre por una letra, y puede contener letras, números, los símbolos $, #, _, y mayúsculas y minúsculas indiferentemente. Los identificadores no pueden ser palab ras reservadas (SELECT, INSERT, DELETE, UPDATE, DROP).

Vía | Wikipedia

Ver más de Programación

noticias que te interesan.