Não é possível descartar aliases. Então, encontrei um alias executando:
SELECT
TABLE_NAME
FROM
QSYS2.SYSTABLES
WHERE
BASE_TABLE_NAME IN ('OE0711P','OE0712P')
AND TABLE_TYPE = 'A'
AND SYSTEM_TABLE_SCHEMA = 'AMPLIBX';
e escolheu o primeiro, que era OE0712PD506202270
.
Então tentei rodar DROP ALIAS AMPLIBX.OE0712PD506202270;
e dá o seguinte erro:
Estado SQL: 42704
Código do fornecedor: -204
Mensagem: [SQL0204] OE07100001 no tipo AMPLIBX *FILE não encontrado. Causa . . . . . : OE07100001 no tipo AMPLIBX *ARQUIVO não encontrado. Se o nome do membro for *ALL, a tabela não será particionada. Se esta for uma instrução ALTER TABLE e o tipo for *N, uma restrição ou partição não foi localizada. Se esta não for uma instrução ALTER TABLE e o tipo for *N, uma função, procedimento, gatilho ou objeto de sequência não foi encontrado. Se uma função não foi encontrada, OE07100001 é o programa de serviço que contém a função. A função não será encontrada a menos que o nome externo e o nome de uso correspondam exatamente. Examine o log da tarefa para obter uma mensagem que forneça mais detalhes sobre qual nome de função está sendo procurado e o nome que não corresponde. Recuperação . . . : Altere o nome e tente a solicitação novamente. Se o objeto for um grupo de nós, assegure-se de que o produto DB2 Multisystem esteja instalado em seu sistema e crie um grupo de nós com o comando CRTNODGRP CL. Se uma função externa não foi localizada, certifique-se de que as maiúsculas e minúsculas de EXTERNAL NAME na instrução CREATE FUNCTION correspondam exatamente às maiúsculas e minúsculas do nome exportado pelo programa de serviço.
O registro do trabalho diz apenas:
OE07100001 no tipo AMPLIBX *ARQUIVO não encontrado.
...mas como pode não ser encontrado? Eu literalmente acabei de encontrar nos metadados.
Observe também: Comportamento estranho ao tentar excluir por meio do aplicativo IBM i Access Client Solutions também.
- O resumo mostra os 1097 aliases existentes. Mas quando clico com o botão direito do mouse no primeiro e seleciono Definição, ele tem um nome diferente daquele que selecionei. Ambos são aliases existentes (mas separados) de acordo com o QSYS2.SYSTABLES.
- Quando tento clicar com o botão direito do mouse e excluir do resumo, nada acontece. Nenhuma mensagem de erro, não excluído.
Estou fazendo algo errado? Como posso descartar esses aliases?
Qual versão do IBM i?
Você pode tentar executar o comando Reclaim DB Cross-Reference (RCLDBXREF) com o arquivo
option(*CHECK)
.Aparentemente, outra pessoa conseguiu corrigi-lo executando IPL e RECSTG.