2.-Fundamentos Del Lenguaje PLSQL
2.-Fundamentos Del Lenguaje PLSQL
• Caracter.
ejemplos :
• Numéricos.
- number (p,e).
Ejemplo:
• Booléanos.
• Fecha.
2º Identificadores.
- Tiene que comenzar siempre por una letra seguida por letras, números, $, #, o el
guión bajo.
- Tiene que tener una longitud máxima de 30 caracteres.
- No distingue entre mayúsculas y minúsculas.
3º Variable.
3) ámbito de las variables: ámbito es la zona del programa donde podemos usar esa
variable.
Ejemplo:
DECLARE
V1 CHAR;
BEGIN
…..
V1:=’1’;
DECLARE
V2 CHAR;
BEGIN
V2:=2;
.....
END;
V1:=V2 Î esto estaría mal, v2 esta declarada dentro otro bloque
END;
Fundamentos del lenguaje
Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
Ejemplo: así se resuelve el problema de la ambigüedad.
<<padre>>
DECLARE
V CHAR;
BEGIN
…..
DECLARE
V CHAR;
BEGIN
…..
V:= padre.V
END;
END;
4º Operadores.
• Asignación Î :=
• Lógicos Î and, or, not
• Concatenación Î ||
• Aritméticos Î +, -, *, /, ** (2**3 = 2 elevado a 3).
• Comparación Î =, !=, <, >, <=, >=, is null, betwen, like (nombre like ‘M%’), in
5º Estructura GOTO.
BEGIN
…..
GOTO insertar_fila
….
<<insertar_fila>>
INSERT INTO empleados VALUES……
END;
6º Subprogramas.
• Procedimientos.
- Declaración.
IS
<declaración de variables locales>
[EXCEPTIONES
<excepciones>;]
….
END[<nombre_procedimientos>];
- Creación.
• Funciones.
- Declaración.
BEGIN
Instrucciones;
…..
RETURN <expresión>;
[EXCEPTIONES
<excepciones>;]
….
END[<nombre_función>];
- Creación.
AS
Anterior_oficio emple.oficio%TYPE;
BEGIN
SELECT oficio INTO anterior_oficio FROM emple.
WHERE emp_no=num_empleado;
UPDATE emple SET oficio=nuevo_oficio
WHERE emp_no=num_empleado;
DBMS_OUTPUT.PUT_LINE (num_empleado ||
’*oficio anterior:’|| anterior_oficio || ‘*oficio nuevo:’
|| nuevo_oficio);
END cambiar_oficio;
<nombre_procedimiento>[(<lista de argumentos>)];
esta segunda alternativa vale para un `procedimiento pero para una función no
vale porque me devuelve un valor. Tendríamos que declarar una variable.
<nombre_función>[(<lista de argumentos>)];
<variable>:=<nombre_función>[(<lista de argumentos>)];
• Parámetros.
Ejemplo:
PROCEDURE gest_dept (
N_departamento INTEGER;
Localidad VARCHAR;
IS
…………
DECLARE
Num_dept INTEGER;
Local VARCHAR (14);
BEGIN
……..
gest_dept (Num_dept, local); Î (notación posicional)
gest_dept (Local => Localidad, Num_dept => Localidad => N_departamento);
Î (notación nominal)
gest_dept (Num_dept, Local => Localidad) Î (notación mixta)
Ejemplo:
cantidad_pesetas IN NUMER,
cambio_actual IN NUMBER,
cantidad_comisión IN OUT NUMBER,
cantidad_divisas OUT NUMBER)
AS
BEGIN
END IF;
END;
……
Bibliografía
Mª.Jesús Ramos, Alicia Ramos, Fernando Montero. “Desarrollo de aplicaciones en
entornos de 4ªgeneración y con herramientas case”. Ed. McGraw-Hill (2000)