Cómo usar el lenguaje módulo con sql

Lenguaje Módulo

proporciona un método relativamente fácil para el uso de SQL con un lenguaje de programación procedimental. Con un lenguaje módulo, se pone explícitamente todas las sentencias SQL en un módulo SQL separada.

Un SQL módulo es simplemente una lista de sentencias SQL. Cada sentencia SQL se incluye en un SQL procedimiento y está precedido por una especificación del nombre del procedimiento y el número y tipo de parámetros.

Cada procedimiento de SQL contiene una sola sentencia SQL. En el programa de acogida, se llama explícitamente un procedimiento de SQL en cualquier punto del programa de acogida que desee ejecutar la sentencia SQL en dicho procedimiento. Usted llama al procedimiento de SQL como si se tratara de un subprograma en el idioma de acogida.

Por lo tanto se puede utilizar un módulo de SQL y el programa host asociado a mano el código de forma explícita el resultado del preprocesador SQL para la sintaxis embebida.

Embedded SQL es mucho más común que el lenguaje módulo. La mayoría de los proveedores ofrecen algún tipo de lenguaje de módulo, pero pocos hacen hincapié en su documentación. Idioma módulo tiene varias ventajas:

  • Programadores de SQL no tienen que ser expertos en la lengua de procedimiento. Debido a que el SQL está completamente separada de la lengua del procedimiento, usted puede contratar a los mejores programadores SQL disponibles para escribir sus módulos de SQL, ya sea que tengan o no alguna experiencia con la lengua de procedimiento. De hecho, incluso se puede aplazar para decidir qué lenguaje de procedimientos a utilizar hasta después de los módulos de SQL se escriben y depurar.

  • Usted puede contratar a los mejores programadores que trabajan en su lengua de procedimiento, incluso si no saben nada acerca de SQL. Es lógico pensar que si sus expertos SQL no tienen que ser expertos en idiomas de procedimiento, sin duda los expertos de la lengua de procedimiento no tiene que preocuparse ellos mismos sobre SQL aprendizaje.

  • Sin SQL se mezcla con el código de procedimiento, por lo que su depurador lenguaje procedural funciona. Esto le puede ahorrar un tiempo considerable desarrollo.

Una vez más, lo que puede ser visto como una ventaja de un punto de vista puede ser una desventaja de otro. Debido a que los módulos de SQL se separan del código de procedimiento, siguiendo el flujo de la lógica no es tan fácil como lo es en SQL incrustado cuando usted está tratando de entender cómo funciona el programa.

Declaraciones del módulo

La sintaxis de las declaraciones de un módulo es el siguiente:

MÓDULO [module-name] [NOMBRES SON character-set-name] IDIOMA PLI [ESQUEMA nombre-esquema] [AUTORIZACIÓN authorization-id][temporary-table-declarations...][cursor-declarations...][dynamic-cursor-declarations...]procedures...

Los corchetes indican que el nombre del módulo es opcional. Nombrar todos modos es una buena idea si quiere mantener las cosas de conseguir demasiado confuso.

El opcional NOMBRES SON cláusula especifica un conjunto de caracteres. Si no se incluye un NOMBRES SON cláusula, se utiliza el conjunto predeterminado de caracteres de SQL para su ejecución. los IDIOMA cláusula dice al módulo que el lenguaje que se llamará a partir. El compilador sabe lo que el lenguaje de la llamada se encuentra, ya que hará que las sentencias SQL aparecen al programa de llamada como si fueran subprogramas en el idioma de ese programa.

Aunque el ESQUEMA cláusula y la AUTORIZACIÓN cláusula son ambos opcionales, debe especificar al menos uno de ellos. O bien, puede especificar tanto. los ESQUEMA cláusula especifica el esquema predeterminado, y la AUTORIZACIÓN cláusula especifica el identificador de autorización. los identificador de autorización establece los privilegios que tiene.

Si no especifica un ID de autorización, el DBMS utiliza el ID de autorización asociado a la sesión para determinar los privilegios que se permite su módulo. Si usted no tiene los privilegios necesarios para realizar la operación de su procedimiento requiere, su procedimiento no se ejecuta.

Si su procedimiento requiere tablas temporales, declararlos con la cláusula de declaración-tabla temporal. Declarar cursores y cursores dinámicos antes de declarar cualquier procedimiento que los utilizan. La declaración de un cursor después de un procedimiento comienza a ejecutar está permitido, siempre y cuando dicho procedimiento no utiliza el cursor. Declarar cursores para ser utilizado por los procedimientos posteriores pueden tener sentido.

Procedimientos de módulo

Las partes funcionales del módulo son los procedimientos. Un procedimiento de lenguaje SQL módulo tiene un nombre, declaraciones de parámetros y las sentencias SQL ejecutables. El programa de lenguaje de procedimientos llama al procedimiento por su nombre y pasa los valores a través de los parámetros declarados. Procedimiento sintaxis es la siguiente:

PROCEDIMIENTO nombre-procedimiento (parámetro declaración [, parámetro de la declaración] ... sentencia SQL - [sentencias SQL] -

La declaración de parámetros debe adoptar la forma siguiente:

de tipo de datos de parámetros de nombre

o

SQLSTATE

Los parámetros se declaran pueden ser parámetros de entrada, parámetros de salida o ambos. SQLSTATE es un parámetro de estado a través del cual se informa de errores.




» » » » Cómo usar el lenguaje módulo con sql