0% encontró este documento útil (0 votos)
23 vistas7 páginas

2.-Fundamentos Del Lenguaje PLSQL

El documento presenta los fundamentos del lenguaje de programación, incluyendo tipos de datos básicos como caracteres, numéricos, booleanos y fechas. También se abordan conceptos de identificadores, variables, operadores, estructuras de control como GOTO, y la creación de subprogramas como procedimientos y funciones. Se detallan ejemplos de declaración y ejecución de procedimientos, así como la gestión de parámetros en funciones.

Cargado por

jdperber
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas7 páginas

2.-Fundamentos Del Lenguaje PLSQL

El documento presenta los fundamentos del lenguaje de programación, incluyendo tipos de datos básicos como caracteres, numéricos, booleanos y fechas. También se abordan conceptos de identificadores, variables, operadores, estructuras de control como GOTO, y la creación de subprogramas como procedimientos y funciones. Se detallan ejemplos de declaración y ejecución de procedimientos, así como la gestión de parámetros en funciones.

Cargado por

jdperber
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Fundamentos del lenguaje

1º Tipos de datos básicos.


2º Identificadores.
3º Variables.
4º Operadores.
5º Estructura goto.
6º Subprogramas.

1º tipos de datos básicos.

• Caracter.

- car (l) Î cadena de caracteres de longitud fija.

ejemplos :

- nombre char (15);


- letra char;
- situación char ( ); Î asi no debemos ponerlo, tenemos que indicarle la
longitud.

- varchar2 (l) Î cadena de caracteres de longitud variable.


- long (l) Î cadena de caracteres de longitud variable.

• Numéricos.

- number (p,e).

Ejemplo:

Importe number(5,2) Î 999.99 en total son 5 números con dos


decimales.

- bynary_integer Î representa un número entero internamente en binario (32


bits).

• Booléanos.

- bolean Î trae, false o null.

• Fecha.

- date Î almacena fechas en formato dd-mm-aaaa. También almacena la hora.

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
• Otros tipos.

- rowid Î almacena un indicador para cada fila.

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.

1) declaración: <nombre variable><tipo>[NOT NULL][{:=|DEFAULT}<valor>];


Ejemplo:

nombre char(20) NOT NULL:=’Miguel’;


nombre char(20) NOT NULL DEFAULT ‘Miguel’;

2) constantes: <nombre constante> CONSTANT <tipo> := valor;


Ejemplo:

Post_iva CONSTANT REAL:=16;

3) ámbito de las variables: ámbito es la zona del programa donde podemos usar esa
variable.

- Es el bloque donde se declara y los bloques hijos de dicho bloque.


- El bloque padre no conoce las variables de los bloques hijos.
- Las variables se crean al comienzo del bloque y se destruyen al salir.
- Se pueden usar etiquetas para resolver ambigüedades (duplicidad de variables,
es decir, que tengamos dos variables declaradas en distintos bloques con el
mismo nombre.).

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.

Es mejor no usarlo. Ejemplo de goto:

BEGIN
…..
GOTO insertar_fila
….
<<insertar_fila>>
INSERT INTO empleados VALUES……
END;

6º Subprogramas.

• Procedimientos.

- Declaración.

PROCEDURE <nombre_procedimiento> [(<lista_parámetros>)]

IS
<declaración de variables locales>

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
BEGIN
Instrucciones;
…..

[EXCEPTIONES
<excepciones>;]
….

END[<nombre_procedimientos>];

- Creación.

CREATE OR REPLACE {PROCEDURE | FUNCTION} Después de esto


vendría la declaración anterior.

• Funciones.

- Declaración.

FUNCTION <nombre_función> [(<lista_parámetros>)]


RETURN <tipo_de_valor_devuelto>
IS
<declaración de variables locales>

BEGIN
Instrucciones;
…..
RETURN <expresión>;

[EXCEPTIONES
<excepciones>;]
….

END[<nombre_función>];

- Creación.

CREATE OR REPLACE {PROCEDURE | FUNCTION}

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
• Ejemplos.

CREATE OR REPLACE PROCEDURE cambiar_oficio (


Num_empleado NUMBER, nuevo_oficio VARCHAR2)

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;

• Ejecución de un procedimiento y/o una función.

- 1ª alternativa: desde la línea de ordenes.

EXECUTE <nombre de procedimiento o función>[(<lista de argumentos>)]

Con el ejemplo anterior:

EXECUTE cambiar_oficio (2,’director’);

- 2ª alternativa: dentro del bloque.

<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.

Parámetros actuales Î en la llamada.


Parámetros formales Î en la definición.

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
Siempre tiene que haber una correspondencia entre los parámetros actuales y los
formales. Dicha correspondencia está implícita en otros lenguajes de programación.
Aquí la correspondencia es de tres tipos:

- Por notación posicional: la correspondencia entre ambos parámetros (actuales y


formales) se realiza basándose en la posición que ocupan. La notación posicional
deberá ir antes de la notación nominal.
- Por notación nominal: tenemos que poner este símbolo =>. Ejemplo: parámetro
actual => parámetro formal.
- Por notación mixta.

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)

• Tipos de parámetros formales.

- IN Î el parámetro formal al que le ponemos el calificador IN sólo recibe


valores del parámetro actual, actuando en el interior del procedimiento o función
como una constante. El parámetro actual puede ser una constante, una variable,
un literal o una expresión. Es el tipo por defecto.

- OUT Î indica un parámetro formal cuyo valor se va a devolver al parámetro


actual correspondiente. El parámetro actual no puede ser una constante, debe ser
una variable.

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006
- IN OUT Î el parámetro formal puede recibir el valor del parámetro actual y
enviar un valor al parámetro actual.

Ejemplo:

CREATE OR REPLACE PROCEDURE cambiar_divisas (

cantidad_pesetas IN NUMER,
cambio_actual IN NUMBER,
cantidad_comisión IN OUT NUMBER,
cantidad_divisas OUT NUMBER)

AS

pot_comision NUMBER (3,2) DEFAULT 0.2;


minimo_comision NUMBER (6) DEFAULT 500;

BEGIN

IF cantidad_comision IS NULL THEN


cantidad_comision := GRATEST (cantidad_pesetas/100*pot_comision,
minimo_comision);

END IF;

Cantidad_divisas := (cantidad_pesetas – cantidad_comision) / cambio_actual;

END;

……

cambiar_divisas (ptas, cambio, v_comision, v_divisas);

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)

Fundamentos del lenguaje


Jesús Pedro Romero Castellano-IES P.Jimenez Montoya-2006

También podría gustarte