Existe um limite de tamanho para o texto SQL em um mecanismo de aplicativo PeopleSoft SQL STEP/Ação?

StackOverflow https://stackoverflow.com/questions/1739622

Pergunta

Estou recebendo o seguinte erro: AesymResolvestatement [775] ... Erro de meta-SQL na posição 34338 ou próxima da declaração (108.512). A declaração SQL em si tem mais de 40.000 chars de comprimento, daí a questão.

O banco de dados é Oracle. Executando nas ferramentas 8.49.24.

Foi útil?

Solução

Não existe esse limite.

Você pode confirmar isso você mesmo criando um SQL como:

select 'x' from PS_INSTALLATION where 
      1 = 1 and 
      1 = 1 and
      1 = 1 and
      1 = 1 and
      /* ... copy paste '1 = 1 and' 90000 times or so times more */
      1 = 1

Embora torne o PSED bastante lento, ele salva e valida muito bem.

Outras dicas

Sei que há um limite no tamanho do SQL usado em um mecanismo de aplicação (etapa SQL). Uma vez recebi um erro semelhante ao tentar usar um SQL excepcionalmente longo em um mecanismo de aplicativo.

Eu não ficaria surpreso se esse mesmo limite se aplicar aos objetos SQL.

Para corrigir o problema, consegui dividir o SQL em 2 (foi uma instrução de atualização). Espero que isso seja possível no seu caso também.

Existem limites no PeopleCode, principalmente devido aos limites do comprimento da corda, no entanto, nunca encontrei um limite nas instruções SQL armazenadas.

Pessoalmente, eu olhava para quebrar a declaração em pedaços de alguma forma.

Você poderia:

  • Usando o mecanismo de loop embutido dos mecanismos de aplicativos
  • Use uma mistura de SQL e PeopleCode
  • Use uma tabela temporária e execute SQLs intermediários, armazenando na tabela de temperatura

Além de dar ao seu banco de dados uma apreensão cardíaca, não a menção do DBA quando ele vê a declaração no monitor SQL. Você está economizando um mundo de dor se precisar olhar para a declaração novamente.

Eu acho que os SQLs nos mecanismos de aplicativos são armazenados como longos, por isso seriam 4 GB sob o Oracle, algo igualmente enorme no DB2.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top