Cláusula PATH

O recurso PATH é opcional e especifica uma lista de esquemas externos, separados por vírgulas, através do qual a procura é feita.

A lista contém vários recursos, por exemplo, funções e procedimentos reutilizáveis.
Nota: O <esquema do nó> é implicitamente incluído como o primeiro elemento PATH, mesmo que não esteja presente.

Sintaxe

Esta definição fornece compatibilidade com versões anteriores do . O ESQL do intermediário gerado pelo conjunto de ferramentas do Eclipse quando o esquema não nomeado é o único esquema ao qual se faz referência não contém a nova sintaxe.

O recurso PATH é utilizado para resolver nomes de funções e procedimentos não qualificados nas ferramentas, de acordo com o algoritmo a seguir.

Deve haver uma única função ou procedimento que corresponda com o nome não qualificado ou a ferramenta relatará um erro. Você pode corrigir o erro qualificando o nome da função ou procedimento com um schemaId:
  1. No MODULE atual (se houver algum) é pesquisada uma função ou um procedimento correspondente. Funções e procedimentos no escopo MODULE são visíveis somente dentro do MODULE que as contém. Funções e procedimento no escopo MODULE ocultam funções e procedimentos no escopo do esquema.
  2. O <esquema do nó> (mas nenhum dos MODULEs que ele contém) e o <esquema do intermediário SQL> ou esquemas identificados pela instrução PATH são pesquisados em busca de um procedimento de função correspondente.
Nota: O schemaId deve ser um nome completo de esquema.

O <esquema do nó> é o esquema que contém o fluxo de mensagens do nó. O nome desse esquema é dado pelo último segmento do uuid do nó que processa a mensagem na mensagem XML do intermediário.

Quando uma rotina é chamada, o nome utilizado pode ser qualificado pelo nome do esquema. O comportamento depende das circunstâncias a seguir:
  • Se o esquema for especificado, a rotina do esquema nomeado é chamada. As funções integradas escalares, excluindo CAST, EXTRACT e os registros especiais, são consideradas como definidas dentro de um esquema declarado implicitamente chamado SQL. Elas podem ser chamadas desta forma, por exemplo, SQL.SUBSTRING(... ).

    O que acontecerá em seguida dependerá se o responsável pela chamada está em uma rotina de módulo ou em uma rotina de esquema.

    No caso de uma rotina de módulo:
    • Se o esquema não for especificado, se a instrução responsável pela chamada estiver em uma rotina de módulo e se existir uma rotina com o nome dado no módulo local, essa rotina local será chamada.
    • Se o esquema não for especificado, se a instrução responsável pela chamada estiver em uma rotina de módulo e se não existir uma rotina com o nome dado no módulo local, todos os esquemas no caminho do esquema são pesquisados em busca de uma rotina com o mesmo nome.
      Se existir uma função correspondente em um esquema, ela será utilizada. Se existir uma função de correspondência em mais de um esquema, ocorrerá um erro de tempo de compilação. Se não houver função correspondente, o SQL do esquema será pesquisado.
      Nota: Esta regra e a regra precedente implicam que uma rotina de módulo local tem prioridade sobre uma rotina interna com o mesmo nome.
    No caso de uma rotina de esquema:
    • Se o esquema não for especificado, se o responsável pela chamada estiver em uma rotina de esquema e se existir uma rotina com o nome dado no esquema local, essa rotina local será chamada.
    • Se o esquema não for especificado, se a instrução responsável pela chamada estiver em uma rotina de esquema e se não existir uma rotina com o nome dado no esquema local, todos os esquemas no caminho do esquema serão pesquisados em busca de uma rotina com o mesmo nome.
      Se existir uma função correspondente em um esquema, ela será utilizada. Se existir uma função de correspondência em mais de um esquema, ocorrerá um erro de tempo de compilação. Se não houver função correspondente, o SQL do esquema será pesquisado.
      Nota: Esta regra e a regra precedente implicam que uma rotina de esquema local tem prioridade sobre uma rotina interna com o mesmo nome.

O <esquema do nó> é definido como o esquema que contém o fluxo de mensagens do nó. O nome desse esquema é dado pelo último segmento do uuid do nó que processa a mensagem na mensagem XML do intermediário.

O <esquema do nó> é especificado dessa forma para fornecer compatibilidade retrocedida com versões anteriores do .

Quando o <esquema do nó> é o único esquema ao qual se faz referência, a mensagem XML do intermediário não inclui os recursos extras contidos no V5.0.

Os intermediários de versões anteriores do não suportam vários esquemas, por exemplo, bibliotecas de sub-rotinas para reutilização. Para implementar em um intermediário de uma versão anterior do produto, coloque todas as sub-rotinas ESQL no mesmo esquema do fluxo de mensagens e do nó que as está chamando.

As ferramentas Eclipse utilizam a sintaxe ESQL do no assistente de conteúdo e validação de código fonte. Ao gerar código ESQL do intermediário, as ferramentas do Eclipse podem gerar um código de estilo V2.1 para fins de compatibilidade retrocedida.

O esquema do intermediário do fluxo de mensagens deve conter, no nível do esquema, qualquer um dos seguintes itens em seus arquivos ESQL:
  • Uma função de nível de esquema
  • Um procedimento de nível de esquema
  • Uma constante de nível de esquema
  • Uma constante de nível do módulo
  • Uma variável de nível do módulo

Sem a presença de qualquer um dos itens precedentes, as ferramentas Eclipse geram o ESQL do intermediário sem os reinícios cíclicos MODULE e FUNCTION Main. Este estilo é aceito pelos intermediários V2.1 e V5.0. No entanto, se você utilizar um intermediário V2.1, não poderá utilizar nenhuma sintaxe V5.0 no código, por exemplo, namespace.

Os nomes de funções e procedimentos devem ser exclusivos dentro de seu SCHEMA ou MODULE.

Conceitos relacionados
ESQL

Tarefas relacionadas
Desenvolvendo ESQL

Referências relacionadas
Preferência de Sintaxe
instruções ESQL
Instrução BROKER SCHEMA
Instrução CREATE MODULE