Consultor Eletrônico



Kbase 47553: Create or drop index, or alter table on Global Temporary Tables with data not allowed
Autor   Jackie Cristine Hansen - CAT
Acesso   Público
Publicação   11/20/2012
Ambiente
* Banco de dados Oracle;
* Versão do TotvsTec no servidor AppServer ?TOTVS - Build 7.00.101202A - Jul 30 2012?;
* Versão do TotvsTec no cliente ?7.00.101202A - 20120711?.

Situação
* Mensagem ?ORA-14450: attempt to access a transactional temp table already in use?;
* Mensagem ?ORA-14452: attempt to create, alter or drop an index on temporary table already in use?;
* Mensagem ?[FATAL][SERVER] [Thread 4141153136]Create or drop index, or alter table on Global Temporary Tables with data not allowed?.

Causa
* A nova versão do TotvsTec passou a utilizar as tabelas temporárias nativas do Oracle ao invés de gravar os dados na ?tablespace temptabs? criada especificamente para o Logix em sua implantação. Nesse caso, ao utilizar tabelas temporárias, não será mais possível usar qualquer comando DDL sobre uma tabela que já tenham dados gravados.

Solução
* Necessário rever o programa em execução.
* Os comandos DDL (Data Definition Language) deverão ser agrupados, preferencialmente, no início do processamento ou transação, pois elas implicitamente fazem a efetivação (commit) dos dados. Exemplo: Create temp table, create index, drop table, drop index, alter table, create or replace procedure, create or replace trigger, create sequence, etc.