Como usar o Módulo de idioma com o SQL

linguagem módulo

fornece um método relativamente fácil para usando SQL com uma linguagem de programação procedural. Com a linguagem módulo, você colocar explicitamente todas as instruções SQL em um módulo SQL separado.

um SQL módulo é simplesmente uma lista de instruções SQL. Cada instrução SQL está incluída em uma SQL procedimento e é precedido por uma especificação do nome do procedimento eo número e tipos de parâmetros.

Cada procedimento SQL contém apenas uma instrução SQL. No programa de host, você explicitamente chamar um procedimento SQL em qualquer ponto no programa host que deseja executar a instrução SQL nesse procedimento. Você chama o procedimento de SQL, como se fosse um subprograma na língua de acolhimento.

Assim, você pode usar um módulo de SQL eo programa de host associado à mão-código explicitamente o resultado do pré-processador de SQL para sintaxe embutido.

SQL embutido é muito mais comum do que a linguagem módulo. A maioria dos fornecedores oferecem alguma forma de linguagem módulo, mas poucos enfatizá-la em sua documentação. linguagem módulo tem várias vantagens:

  • programadores de SQL não tem que ser especialistas na língua do processo. Porque o SQL é completamente separado da linguagem procedural, você pode contratar os melhores programadores SQL disponíveis para escrever seus módulos SQL, ou não tem alguma experiência com o idioma processual. Na verdade, você pode até mesmo adiar a decidir qual linguagem procedural usar até depois de seus módulos de SQL são escritos e depurado.

  • Você pode contratar os melhores programadores que trabalham na sua língua processual, mesmo que eles não sabem nada sobre SQL. É lógico que, se seus especialistas SQL não tem que ser especialistas em línguas processuais, certamente, os especialistas em linguagem processuais não precisa se preocupar-se sobre SQL aprendizagem.

  • No SQL é misturado com o código de procedimento, para que o seu depurador de linguagem processual funciona. Isso pode lhe poupar tempo de desenvolvimento considerável.

Mais uma vez, o que pode ser encarado como uma vantagem de um ponto de vista pode ser uma desvantagem de outro. Porque os módulos SQL são separadas do código de procedimento, seguindo o fluxo da lógica não é tão fácil como no SQL embutido quando você está tentando entender como o programa funciona.

declarações do módulo

A sintaxe para as declarações em um módulo é a seguinte:

MÓDULO [module-name] [nomes são personagem-set-name] LÍNGUA PLI [schema-name] [AUTORIZAÇÃO authorization-id][temporary-table-declarations...][cursor-declarations...][dynamic-cursor-declarations...]procedures...

Os colchetes indicam que o nome do módulo é opcional. Nomeá-lo de qualquer maneira é uma boa idéia se você quer manter as coisas de ficar muito confuso.

o opcional Os nomes são cláusula especifica um conjunto de caracteres. Se você não incluir um Os nomes são cláusula, o conjunto padrão de caracteres SQL para a sua implementação é usado. o LÍNGUA cláusula diz o módulo que língua ele será chamado a partir. O compilador sabe o que a linguagem chamada é, porque ele vai fazer as instruções SQL aparecer para o programa de chamada como se eles são subprogramas em língua desse programa.

Apesar de ESQUEMA e a cláusula AUTORIZAÇÃO cláusula são opcionais, você deve especificar pelo menos um deles. Ou você pode especificar ambos. o ESQUEMA cláusula especifica o esquema padrão, eo AUTORIZAÇÃO cláusula especifica o identificador de autorização. o identificador de autorização estabelece os privilégios que você tem.

Se você não especificar um ID de autorização, o DBMS usa o ID de autorização associado à sua sessão para determinar os privilégios que seu módulo é permitido. Se você não tem os privilégios necessários para executar a operação de seu procedimento exige, o procedimento não é executado.

Se o seu procedimento requer tabelas temporárias, declará-los com a cláusula de declaração da tabela temporária. Declarar cursores e cursores dinâmicos antes de declarar quaisquer procedimentos que as utilizam. Declarando um cursor após um procedimento inicia a execução é permitida, desde que esse procedimento não utiliza o cursor. Declarando cursores para ser usado por procedimentos posteriores pode fazer sentido.

procedimentos do módulo

As partes funcionais do módulo são os procedimentos. Um procedimento SQL linguagem módulo tem um nome, as declarações de parâmetros e instruções SQL executáveis. O programa de linguagem procedural chama o procedimento pelo seu nome e passa valores a ele através dos parâmetros declarados. sintaxe procedimento se parece com isso:

PROCEDIMENTO procedimento de nome (parâmetro da declaração [, parâmetro da declaração] ... instrução SQL - [instruções SQL] -

A declaração de parâmetro deve ter a seguinte forma:

-Tipo de dados parâmetro de nome

ou

SQLSTATE

Os parâmetros que declaram pode ser parâmetros de entrada, parâmetros de saída, ou ambos. SQLSTATE é um parâmetro de status através do qual os erros são relatados.

menu