Pessoal boa tarde.
assim estou gerando um arquivo, a partir da execução de um script. que é chamado pelo sql plus, dentro do forms.
alguém sabe como faço para verificar se o local de geração de arquivo tem permissão para gravar nele, ou se existe o local aonde o será gerado.
??
Verificar o local de gravação do arquivo
-
- Rank: Programador Pleno
- Mensagens: 34
- Registrado em: Qua, 02 Set 2009 3:29 pm
- Localização: São José - SC
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
Cara, da uma olhada nas funções da
se alguém aí souber posta ai
d2kwutil.pll
, acredito que isso não tenha, mas da uma olhada, se alguém aí souber posta ai
-
- Rank: Programador Pleno
- Mensagens: 34
- Registrado em: Qua, 02 Set 2009 3:29 pm
- Localização: São José - SC
posé, ainda sou iniciante.... alguma sugestão??
na verdade me pediram para antes de gravar verificar se o local existe, se existir verificar se tem permissão de gravação...
alguém tem alguma sugestao??
em pl/sql ?
sql-PLus ?
na verdade me pediram para antes de gravar verificar se o local existe, se existir verificar se tem permissão de gravação...
alguém tem alguma sugestao??
em pl/sql ?
sql-PLus ?
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
se não tiver as funcoes que procura.. outra maneira de fazer seria capturar a excecao lançada
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
Como o vitor disse, você pode usar a UTL_FILE, pacote de banco, dai você escreve uma rotina plsql,
e trata a exception, por exemplo nesse caso seria:
e trata a exception, por exemplo nesse caso seria:
exception
when utl_file.access_denied then
raise_application_error(20001, 'sem permissao');
end;
-
- Rank: Programador Pleno
- Mensagens: 34
- Registrado em: Qua, 02 Set 2009 3:29 pm
- Localização: São José - SC
como disse sou iniciante, hehehe, sou obrigado a deixar o script gerando o arquivo, pensei em testar com pl sql se a pasta existe e se tem permissao antes de chamar o script que gera os arquivos. mas não sei como fazer isso.
não sei se é possivel, podem me ajudar???
não sei se é possivel, podem me ajudar???
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
cara, pega a lista de todas as exceptions que são geradas pelo pacote UTL_FILE, escreva a sua rotina, porem trate todas as exceptions com mensagens claras de qual exception disparou, aí você não precisa testar isso e aquilo, mostra o que aconteceu e boa,
-
- Rank: Programador Pleno
- Mensagens: 34
- Registrado em: Qua, 02 Set 2009 3:29 pm
- Localização: São José - SC
fala galera
então, ainda quebrando a cabeça de como fazer isso aqui...
minha idéia foi a seguinte
to usando o comando TEXT_IO e criando um arquivo... se o arquivo foi criado beleza continua processando.... se não ele exibe mensagem de erro...
meu problema agora é o seguinte.. como deletar esse arquivo gerado... ele só vai servir para testar o diretório mesmo....
preciso de ajuda mesmo... hehehe
então, ainda quebrando a cabeça de como fazer isso aqui...
minha idéia foi a seguinte
to usando o comando TEXT_IO e criando um arquivo... se o arquivo foi criado beleza continua processando.... se não ele exibe mensagem de erro...
meu problema agora é o seguinte.. como deletar esse arquivo gerado... ele só vai servir para testar o diretório mesmo....
preciso de ajuda mesmo... hehehe
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
na biblioteca d2kwutil tem funcao para remover arquivo
-
- Rank: Programador Sênior
- Mensagens: 58
- Registrado em: Sex, 30 Out 2009 9:52 am
- Localização: Salvador - BA
- Contato:
Atenciosamente,
João Paulo A. C. do Bomfim
"Deu certo? Deixa! Funcionou? Não mexa!"
João Paulo A. C. do Bomfim
"Deu certo? Deixa! Funcionou? Não mexa!"
Você sabe o caminho do arquivo?
Qual o SO em que vai rodar a aplicação?
Meu teste foi realizado no Windows XP Pro, Forms 4.5._.-
Adicionei um botão e na trigger
Feito isso eu apaguei o arquivo << teste.txt >> que encontrava-se em C:
Qual o SO em que vai rodar a aplicação?
Meu teste foi realizado no Windows XP Pro, Forms 4.5._.-
Adicionei um botão e na trigger
WHEN-MOUSE-CLICK
adicionei o código abaixo:
BEGIN
HOST('del C:\teste.txt');
END;
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Caros.
Tenho esse exemplo de manipulação de arquivos em PL/SQL.
Acho que e o esta procurando Marcelo.
Espero ter ajudado.
Abs.
Tenho esse exemplo de manipulação de arquivos em PL/SQL.
Acho que e o esta procurando Marcelo.
Set ServerOutput On
declare
v_line varchar2(32767);
c_location constant varchar2(80) := 'UTL_FILE_TEST';
c_source_filename constant varchar2(80) := 'test.txt';
c_copy_filename constant varchar2(80) := 'copy.txt';
c_ren_filename constant varchar2(80) := 'ren.txt';
procedure Show_Attr ( p_filename in varchar2 ) is
v_exists boolean;
v_file_length number;
v_block_size binary_integer;
begin
Utl_File.Fgetattr (
location => c_location,
filename => p_filename,
fexists => v_exists,
file_length => v_file_length,
block_size => v_block_size );
-- Bug #2240685. v_exists is always returned TRUE
-- But non-existent file has ZERO file_length and block_size
if not v_exists then Raise_Application_Error ( -20000, 'Bug #2240685 is fixed' ); end if;
Dbms_Output.Put_Line (
p_filename || ' : ' ||
To_Char(v_file_length) || ' : ' ||
To_Char(v_block_size ) );
end Show_Attr;
procedure Remove ( p_filename in varchar2 ) is
begin
Utl_File.Fremove (
location => c_location,
filename => p_filename );
exception
when Utl_File.Delete_Failed then
Utl_File.Fclose_All;
Raise_Application_Error ( -20000, 'Fremove: Delete_Failed trapped' );
when Utl_File.Invalid_Operation then
Utl_File.Fclose_All;
Raise_Application_Error ( -20000, 'Fremove: Invalid_Operation trapped' );
end Remove;
procedure Full_Copy ( p_source in varchar2, p_dest in varchar2 ) is
begin
Utl_File.Fcopy (
src_location => c_location,
src_filename => p_source,
dest_location => c_location,
dest_filename => p_dest );
-- start_line binary_integer in default-- end_line binary_integer in default
exception when Utl_File.Invalid_Operation then
Utl_File.Fclose_All;
Raise_Application_Error ( -20000, 'Fcopy: Invalid_Operation trapped' );
end Full_Copy;
procedure Rename ( p_source in varchar2, p_dest in varchar2 ) is
begin
Utl_File.Frename (
src_location => c_location,
src_filename => p_source,
dest_location => c_location,
dest_filename => p_dest,
overwrite => false);
exception when Utl_File.Rename_Failed then
Utl_File.Fclose_All;
Raise_Application_Error ( -20000, 'Frename: Rename_Failed trapped' );
end Rename;
begin
Show_Attr ( c_source_filename );
Show_Attr ( c_copy_filename );
Full_Copy ( c_source_filename, c_copy_filename );
--Full_Copy ( 'not_there.txt', c_copy_filename ) /* Uncomment to see Utl_File.Invalid_Operation */;
Show_Attr ( c_copy_filename );
-- Create ren.txt before running this block to see Utl_File.Rename_Failed
Rename ( c_copy_filename, c_ren_filename );
Show_Attr ( c_ren_filename );
Remove ( c_ren_filename );
-- Create protected.txt by hand and do "chmod a-x protected.txt"
--Remove ( 'protected.txt' ) /* Uncomment to see Utl_File.Invalid_Operation */;
end;
/
Abs.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 25 visitantes