2 - É possível trazer o conteúdo de um campo do tipo "M" (memo) através de uma query?
Toggle Cloak
exclusive
true
Cloak
visible
true
Não, não é possível. O true suporta por compatibilidade campos do tipo MEMO presentes na estrutura dos arquivos DBF, anteriormente utilizados nas primeiras versões da linha de produtos Microsiga Protheus.
Caso seja feita uma query onde é retornado um campo MEMO explicitamente (selecionando um campo MEMO em uma query) ou implicitamente (executando um SELECT * em uma tabela que contém um campo MEMO), será registrado no arquivo de console do DBAccess uma mensagem de advertência, indicando que o campo MEMO foi removido do registro retornado.
Exemplos de mensagem de advertência:
[WARNING] Unsupported blob type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported binary type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported clob type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported long type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported column type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
Unsupported column type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tODBCStatement::BindCols)
As versões de DBAccess anteriores a 17.2.1.5, não estavam deletando/removendo as sequences criadas para tabelas temporárias e consequentemente deixando sequences órfãs no SGDB.
Para remover as sequences órfãs, execute o procedimento abaixo:
Parar os serviços/processos do DBAccess
Abrir um client Oracle de sua escolha (sqlplus, isql, Oracle SQL Developer, etc...)
Conectar na base de dados do Protheus utilizando o mesmo usuário utilizado pelo DBAccess
Executar o script abaixo através do client conectado a base de dados do Protheus: