Um dos diferenciais entre ambiente Progress e Oracle é a forma de tratar letras maiúsculas de minúsculas. Em outras palavras, como ambiente Oracle é case sensitive, significa que diferencia entre letras maiúsculas e minúsculas. Já o Progress sendo insensitive, não importa a forma de digitação.
Exemplos: No Oracle : "Pedro" é diferente de "pedro" ou "PEDRO" é diferente de "pedro"
No Progress : "Pedro" é igual "pedro" ou "PEDRO" é igual "pedro"
Para tratar este diferencial e manter a compatibilidade entre os ambientes, a Progress optou por criar colunas auxiliares chamadas de SHADOW COLUMNS (também chamadas de colunas sombras) para a estrutura da tabela que é criada do lado Oracle. Sendo visíveis somente do lado Oracle e praticamente com o mesmo nome da coluna de origem, são facilmente observadas pelo comando DESCRIBE da ferramenta SQL*PLUS para uma tabela do produto Datasul, por exemplo:
No prompt da ferramenta Sqlplus:
SQL> DESC EMPRESA
Observe que há colunas nomeadas com prefixo "U##". Note que os índices para esta tabela referenciam as colunas shadow que são do tipo caracter. Mesmo que a definição do lado Progress que é observada pela ferramenta Data Dictionary referencie a coluna de origem, no script gerado para ser executado no Oracle para criar a definição da tabela, os índices referenciam as colunas Shadow no lugar das definições das colunas de origem.
O objetivo desta coluna é armazenar a cópia em maiúsculo do conteúdo da coluna de origem. Desta forma, pelo índice, o Progress recupera a informação quando necessário realizar pesquisa por colunas que são do tipo caracter.
O uso da coluna Shadow é opcional na geração do Schemas Holders Oracle. Caso tenhas licença de desenvolvimento, acesse a ferramenta Data Administrator e no menu Dataserver, no submenu Migration Db Progress to Oracle e observe na janela aberta se a opção de geração "Create Shadow Columns" está selecionada, a mesma determina se as colunas Shadow serão criadas nos scripts Oracle.
Já para Schemas Holders criados a partir de definições que existem no Oracle, a estrutura Oracle permanecerá a mesma e no lado Progress a definição não conterá as colunas definidas como Shadow e Progress_recid. Abordaremos o assunto de migrar definições Oracle para Progress posteriormente.