Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PLSQL
PLSQL
Ejemplo de insercin de un registro compuesto por un nmero entero dado y una cadena, (i, xxx):
CREATE TABLE T2 ( a INTEGER, b CHAR(10) ); CREATE PROCEDURE addtuple1(i IN NUMBER) AS BEGIN INSERT INTO T2 VALUES(i, 'xxx'); END addtuple1; . run;
Un procedimiento se indica mediante las palabras clave CREATE PROCEDURE seguido del nombre y sus parmetros. Opcional es continuarlo de CREATE seguido de OR REPLACE. Esto permitir crear o reemplazar el procedimiento, si existe previamente, sin advertencias. Puede haber un nmero ilimitado de parmetros, seguidos de un modo y un tipo. Los modos posibles son:
tipos CHAR o VARCHAR en su lugar. La longitud depende del parmetro que se pase cuando el procedimiento es invocado.
A continuacin de los argumentos, se debe usar la palabra clave AS (IS es un sinnimo). A continuacin va el cuerpo, esencial en un bloque PL/SQL. Hemos repetido al final el nombre del procedimiento tras el END, pero esto es opcional. La seccin de declaracin, NO debe empezar con la palabra clave DECLARE. En su lugar, usamos AS. El run; tras un procedimiento, no lo ejecuta, sino que tan slo ejecuta la sentencia que crea el procedimiento. Para ejecutar el procedimiento hay que usar otra sentencia PL/SQL, en la que el procedimiento es invocado como una sentencia de ejecucin. Ejemplo 1:
CREATE PROCEDURE addtuple2(x T2.a%TYPE, y T2.b%TYPE) AS BEGIN INSERT INTO T2(a, b) VALUES(x, y); END addtuple2; . run; /* -- Ahora aade el registro (10, 'abc') a T2: -- */ BEGIN addtuple2(10, 'abc'); END; . run;
INSERT INTO T3 VALUES(a, b); END; . run; /* -- Invocacin al procedimiento -- */ DECLARE v NUMBER; BEGIN addtuple3(10, v); END; . run;
Cuando usemos OUT o INOUT, no se puede usar una constante, ya que su valor cambiar.
FUNCIONES: Tambin podemos crear Funciones en lugar de Procedimientos. En su declaracin y tras los parmetros pondremosRETURN y el tipo de valor que retornar:
CREATE FUNCTION <nombre_funcion>(<lista_params>) RETURN <tipo_var_retorno> AS
CONSULTAS SOBRE PROCEDIMIENTOS Y FUNCIONES: Para encontrar qu procedimientos y funciones hemos creado, usamos la siguiente query de SQL:
select object_type, object_name from user_objects where object_type = 'PROCEDURE' or object_type = 'FUNCTION';