Beruflich Dokumente
Kultur Dokumente
[ <característica de la rutina>… ]
<cuerpo de la rutina>
NOTA
El tipo de características de rutina que se puede definir varía ampliamente entre las
implementaciones SQL, no solamente en términos de cuáles opciones son
soportadas, sino también acerca de cómo están definidas. Consecuentemente, el
análisis sobre estas opciones se mantendrá corto, por lo que deberá asegurarse de
revisar la documentación del producto para mayor información. Por ejemplo, las
extensiones de procedimiento en Oracle están definidas utilizando un lenguaje que
Oracle llama PL/SQL, mientras que en SQL Server y Sybase, las extensiones de
procedimiento son parte de un lenguaje llamado Transact-SQL; ambos lenguajes
son significativamente diferentes del estándar SQL. Por otro lado, MySQL y DB2
generalmente acatan el estándar SQL al definir funciones y procedimientos
almacenados.
Después de haber definido las características del procedimiento, todo está listo para
agregar las instrucciones SQL, que están representadas por el marcador de
posición <cuerpo de la rutina>. Muchas de las instrucciones que se utilizarán en
esta sección serán similares a aquellas que ya se han visto en este libro. Sin
embargo, el estándar SQL/PSM introdujo nuevos elementos del lenguaje que
hicieron más dinámicos los procedimientos.
Para ver esta información, se puede crear una instrucción SELECT que una las dos
tablas, como se muestra en el siguiente ejemplo:
select productos.Nombre,productos.Stock
from productos
inner join proveedores
on productos.idProveedor = proveedores.IDProveedor
and proveedores.Nombre = 'JUMEX';
Desde luego, cada vez que se quiera ver esta información, se tendrá que volver a
crear la instrucción SELECT. Sin embargo, otra opción es almacenar la instrucción
SELECT dentro del esquema. De esta manera, todo lo que se necesita hacer es
convocar la instrucción cada vez que se quiera ver la información de los productos
de Jumex. Una forma de almacenar la instrucción SELECT es dentro de una
definición de vista:
select productos.Nombre,productos.Stock
from productos
on productos.idProveedor = proveedores.IDProveedor
Una vez que se ha creado la vista, se puede utilizar una instrucción SELECT para
convocar la vista, como se muestra en la siguiente instrucción:
Sin embargo las vistas son muy limitadas respecto a los tipos de instrucción y a la
funcionalidad que soportan. Por ejemplo, no se puede incluir la instrucción UPDATE
en una vista, ni se pueden pasar parámetros desde y/o hacia las vistas. Como
resultado, una mejor forma de almacenar esta instrucción SELECT es como un
procedimiento invocado por SQL. Para hacer esto, se debe crear un objeto de
esquema utilizando la instrucción CREATE PROCEDURE, como se muestra en el
siguiente ejemplo:
DELIMITER //
FROM PRODUCTOS
delimiter ;
CALL productos_de_jumex();