Caractere especial em arquivo físico

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
ogj
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 06 Jun 2013 2:45 pm

Boa tarde !!

Estou com problema em uma Package que lê um arquivo .csv.

Problema é que se o arquivo físico estiver nomeado com caractere especial o meu programa não abre o arquivo.

Tentei tratar com a função de converter caractere especial, mais ela só converte o texto e não o nome do arquivo físico, alguém poderia me ajudar ??

Desde já agradeço a atenção de todos.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá ogj,

Bem vindo ao fórum GLUFKE !

Seria possível você dar maiores informações sobre o problema que está enfrentando? Se pudesse também dar um exemplo de nome de arquivo acentuado, eventuais mensagens de erro, etc, ficaria mais fácil de lhe ajudar.

Abraços e fico no aguardo,

Sergio Coutinho
ogj
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 06 Jun 2013 2:45 pm

Bom dia !! o nome do arquivo : Exportação_interface.

Da uma mensagem que o programa não pode ser aberto devido caracteres especiais no nome do arquivo.

Quando salvo o arquivo Exportacao_interface, o programa lê normal.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Ogj,

Por favor, poste também a mensagem de erro ÓRACLE que está sendo gerada nesta operação.
Coloque também o comando que está usando para a abertura do arquivo (a linha do FOPEN).

Isso ajudaria bastante na análise do seu problema pelos foristas.

Obrigado !

Sergio Coutinho
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá Ogj,

Encontrei um link do ORACLE FORUNS onde o forista descreve um erro parecido com o seu:

https://forums.oracle.com/thread/2331467

Infelizmente, ele não descreve uma solução para seu problema.

Uma coisa que você poderia fazer seria configurar a sessão do sistema operacional (WINDOWS ou LINUX) para reconhecer o idioma português como idioma nativo (NLS_LANG). Mas você precisaria consultar a documentação da ORACLE para fazer um teste.

Não é possivel você trabalhar com caracteres não acentuados? Se o seu banco for entrerprise e tiver o JVM instalado, talvez fosse possível criar uma função JAVA para renomear os arquivos para caracteres não acentuados. Mas você precisaria pesquisar mais a fundo. A solução mais simplista seria gerar os nomes dos arquivos sem caracteres especiais ou acentuados.

Talvez você possa fazer alguma "gambiarra" com o ORACLE para que este forneça a você os nomes de arquivos de um diretório e utilizar o valor obtido desta lista para fazer o comando FOPEN. Ou seja, o ORACLE interpreta de "forma própria" o nome do arquivo acentuado e utiliza este nome interpretado para fazer o comando FOPEN. Por exemplo: vamos dizer que o arquivo "TESTÃO.TXT" seja interepretado pelo ORACLE como "TEST???O.TXT". A procedure do link abaixo vai gerar este nome na lista dele e vai usar este mesmo valor para o comando FOPEN. Veja mais detalhes neste link:

http://www.orafaq.com/forum/t/87813/2/

Não sei se será possível resolver desta forma seu problema, mas vale uma tentativa se você não puder deixar de usar caracteres acentuados nos nomes dos arquivos.

Talvez os foristas possam dar alguma dica para sanar seu problema.

Abraços,

Sergio Coutinho
ogj
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 06 Jun 2013 2:45 pm

Obrigado pelas dicas, vou tentar usar.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 18 visitantes