 |
|
 |
Bloques PL/SQL
Un programa de PL/SQL está compuesto por bloques. Un programa está compuesto como mínimo de un bloque.
Los bloques de PL/SQL pueden ser de los siguientes tipos:
-
Bloques anónimos
-
Subprogramas
Estructura de un Bloque
Los bloques PL/SQL presentan una estructura específica compuesta de tres partes bien diferenciadas:
-
La sección declarativa en donde se declaran todas las constantes y variables que se van a utilizar en la ejecución del bloque.
-
La sección de ejecución que incluye las instrucciones a ejecutar en el bloque PL/SQL.
-
La sección de excepciones en donde se definen los manejadores de errores que soportará el bloque PL/SQL.
Cada una de las partes anteriores se delimita por una palabra reservada, de modo que un bloque PL/SQL se puede representar como sigue:
[ declare | is | as ] /*Parte declarativa*/
begin /*Parte de ejecucion*/ [ exception ] /*Parte de excepciones*/ end;
|
De las anteriores partes, únicamente la sección de ejecución es obligatoria, que quedaría delimitada entre las cláusulas BEGIN y END. Veamos un ejemplo de bloque PL/SQL muy genérico. Se trata de un bloque anónimos, es decir no lo identifica ningún nombre. Los bloques anónimos identifican su parte declarativa con la palabra reservada DECLARE.
DECLARE /*Parte declarativa*/
nombre_variable DATE; BEGIN /*Parte de ejecucion * Este código asigna el valor de la columna "nombre_columna" * a la variable identificada por "nombre_variable" */ SELECT SYSDATE INTO nombre_variable FROM DUAL;
EXCEPTION /*Parte de excepciones*/ WHEN OTHERS THEN dbms_output.put_line('Se ha producido un error'); END; |
A continuación vamos a ver cada una de estas secciones
Sección de Declaración de Variables
En esta parte se declaran las variables que va a necesitar nuestro programa. Una variable se declara asignandole un nombre o "identificador" seguido del tipo de valor que puede contener. También se declaran cursores, de gran utilidad para la consulta de datos, y excepciones definidas por el usuario. También podemos especificar si se trata de una constante, si puede contener valor nulo y asignar un valor inicial.
La sintaxis generica para la declaracion de constantes y variables es:
nombre_variable [CONSTANT] <tipo_dato> [NOT NULL][:=valor_inicial]
|
donde:
-
tipo_dato: es el tipo de dato que va a poder almacenar la variable, este puede ser cualquiera de los tipos soportandos por ORACLE, es decir NUMBER , DATE , CHAR , VARCHAR, VARCHAR2, BOOLEAN ... Además para algunos tipos de datos (NUMBER y VARCHAR) podemos especificar la longitud.
-
La cláusula CONSTANT indica la definición de una constante cuyo valor no puede ser modificado. Se debe incluir la inicialización de la constante en su declaración.
-
La cláusula NOT NULL impide que a una variable se le asigne el valor nulo, y por tanto debe inicializarse a un valor diferente de NULL.
-
Las variables que no son inicializadas toman el valor inicial NULL.
-
La inicialización puede incluir cualquier expresión legal de PL/SQL, que lógicamente debe corresponder con el tipo del identificador definido.
-
Los tipos escalares incluyen los definidos en SQL más los tipos VARCHAR y BOOLEAN. Este último puede tomar los valores TRUE, FALSE y NULL, y se suele utilizar para almacenar el resultado de alguna operación lógica. VARCHAR es un sinónimo de CHAR.
-
También es posible definir el tipo de una variable o constante, dependiendo del tipo de otro identificador, mediante la utilización de las cláusulas %TYPE y %ROWTYPE. Mediante la primera opción se define una variable o constante escalar, y con la segunda se define una variable fila, donde identificador puede ser otra variable fila o una tabla. Habitualmente se utiliza %TYPE para definir la variable del mismo tipo que tenga definido un campo en una tabla de la base de datos, mientras que %ROWTYPE se utiliza para declarar varibales utilizando cursores.
Ejemplos:
Estructura de un bloque anónimo.
DECLARE /* Se declara la variable de tipo VARCHAR2(15) identificada por v_location y se le asigna el valor "Granada"*/
v_location VARCHAR2(15) := ’Granada’; /*Se declara la constante de tipo NUMBER identificada por PI y se le asigna el valor 3.1416*/ PI CONSTANT NUMBER := 3.1416;
/*Se declara la variable del mismo tipo que tenga el campo nombre de la tabla tabla_empleados identificada por v_nombre y no se le asigna ningún valor */ v_nombre tabla_empleados.nombre%TYPE; /*Se declara la variable del tipo registro correspondiente a un supuesto cursor, llamado micursor, identificada por reg_datos*/ reg_datos micursor%ROWTYPE; BEGIN /*Parte de ejecucion*/ EXCEPTION /*Parte de excepciones*/ END;
|
Estructura de un subprograma:
CREATE PROCEDURE simple_procedure IS /* Se declara la variable de tipo VARCHAR2(15) identificada por v_location y se le asigna el valor "Granada"*/
v_location VARCHAR2(15) := ’Granada’; /*Se declara la constante de tipo NUMBER identificada por PI y se le asigna el valor 3.1416*/ PI CONSTANT NUMBER := 3.1416;
/*Se declara la variable del mismo tipo que tenga el campo nombre de la tabla tabla_empleados identificada por v_nombre y no se le asigna ningún valor */ v_nombre tabla_empleados.nombre%TYPE; /*Se declara la variable del tipo registro correspondiente a un supuesto cursor, llamado micursor, identificada por reg_datos*/ reg_datos micursor%ROWTYPE; BEGIN /*Parte de ejecucion*/ EXCEPTION /*Parte de excepciones*/ END;
|
|
| |
 |
cual es el usuario para conectarse a oracle 8i?
por
michel
Respuesta recibida el [27/08/2007 02:53:14]
|
 |
hola como estas, instale el gestor de bd oracle 8i pero al intentar conectarme al pl/sql me pide un usuario y una pass que desconozco...
|
| |
 |
Has tenido que introducirla en...
por
Anónimo
Respuesta recibida el [27/08/2007 03:07:01]
|
 |
Has tenido que introducirla en la instalación, pero ... como es 8i prueba con "internal" y de clave "ORACLE".
|
| |
 |
Problemas con oracle xe y delphi
por
Alexandra
Respuesta recibida el [19/09/2007 03:27:10]
|
 |
Estoy trabajando con oracle xe y zeos, al abrir un TZstoredProc con un procedimiento oracle que tiene un parametro de entrada y un sys_refcursor como salida, genera un error de parametro invalido....porfa si tienes una solucion para esto te lo agradecira muchiiiisimo.
|
| |
 |
Conociendo Oracle
por
Alondra
Respuesta recibida el [21/01/2008 07:06:16]
|
 |
Un tutorial muy bueno, a pesar que no practico directamente la informatica me ha ayudado a entender mejor al personal que me complementa en el desarrollo de los diseños
|
| |
 |
chupa el perro
por
tu ano
Respuesta recibida el [21/04/2008 09:41:17]
|
 |
que pasa longi ql y weas ta wena la wea de tutorial yeahhh power!!!!!!!!!
|
| |
 |
chancho culiao
por
oracle eeeeeeeeeeeee
Respuesta recibida el [21/04/2008 09:42:45]
|
 |
debo decir en estricto rigor eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
xdddd!!!!!!!!!!!!!!
|
| |
 |
Problemas con Oracle
por
Eder
Respuesta recibida el [24/04/2008 01:01:33]
|
 |
Tengo un problema al devolver algunas variables dentro de un procedimiento almacenado de oracle 8i me sale error; que no puedo devolver mas de una fila. Alguien me puede ayudar con esto. Gracias
|
| |
 |
Login
por
Jose Balanzategui
Respuesta recibida el [06/05/2008 11:05:16]
|
 |
Cuando instalas oracle te piede el usuario y password, esto es lo que tienes que escribir: USUARIO: SCOTT PASWORD: TIGER
|
| |
 |
Enhorabuena
por
PULSAY
Respuesta recibida el [02/10/2008 03:10:28]
|
 |
Enhorabuena por el tutorial, he aprendido todo lo imprescindible del pl/sql en un día y he podido sacar adelante el trabajo que tenía entre manos. Gracias.
|
| |
 |
ESTAS SON MAMADAS...
por
Anónimo
Respuesta recibida el [15/10/2008 07:38:56]
|
 |
ESTAS SON MAMADAS
|
| |
 |
ESTAS SON PURAS MAMADAS...
por
EMANUEL MARTINEZ
Respuesta recibida el [15/10/2008 07:39:47]
|
 |
ESTAS SON PURAS MAMADAS
|
| |
 |
ME ENCUERO POR UN PESO...
por
ELSA PATRICIA
Respuesta recibida el [15/10/2008 07:40:23]
|
 |
ME ENCUERO POR UN PESO
|
| |
 |
Q CVR
por
HENRY
Respuesta recibida el [30/10/2008 02:10:21]
|
 |
BRABAZO TIO Q CVR Q EXISTAN PATAS COMO TU
|
| |
 |
Contraseña PL/SQL
por
Softmarck
Respuesta recibida el [03/11/2008 09:31:11]
|
 |
despues de instalar y cuando te pide el usuario y la contraseña son los mismos del oracle es decir(al menos en mi caso) usuario: system contraseña: system1, es usuario es el mismo la contraseña un poco que puede variar puede ser solo system o quizas sys y asi juega con eso jejeje espero q te ayude en algo suerte...
|
| |
 |
huelo a estiercol
por
agustin paredes
Respuesta recibida el [11/11/2008 07:38:37]
|
 |
oigan amigos me apesta la cola a pura mierda ke pudo hacer mi novia me corto y creo ke se debe a ese motivo. gracias por leer esto les agradeceria mucho si dan un consejo
|
| |
 |
Para "huelo a estiercol"
por
xxx
Respuesta recibida el [18/12/2008 10:44:32]
|
 |
El agua no es solo para tomertela o para lavar coches,tambien la puedes usar para bañarte, lavate la cola con agua limpia y jabon y se te quitara la pestilencia a kaka...
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Bloques PL/SQL |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
63395 |
Fecha de publicación:
04/03/2006 |
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.
Posee mas de diez años de experiencia trabajando para las principales empresas de España.
Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.
Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).
Es fundador, diseñador y programador de www.devjoker.com. |
|
|
Visitas:
45
|
Comentarios:
0
|
Archivo:
Articulos
|
|
Visitas:
109
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
156
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
34
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
285
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
842
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
712
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
451
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
1054
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
250
|
Comentarios:
0
|
Archivo:
Articulos
|
|
|
|
 |
| Encuesta |
|
¿A que perfil te adaptas mejor? |
|
|
|
|
|
|
|
|
 |