- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 11 anos, 3 meses atrás por Andrei Rubino.
-
AutorPosts
-
9 de agosto de 2013 às 4:14 pm #105735Andrei RubinoParticipante
Amigos, Preciso de ajuda estou tentando inserir uma imagem em um coluna BLOB.
Mas antes disso estou tendo esse erro:
ORA-22288 FILE OR LOB OPERATION FILE OPEN FAILEDJá criei um diretório e dei Grant de read,write,execute.
Ele encontra o arquivo e em seguida gera o erro ao executar o DBMS_LOB.FILEOPEN.
Alguém pode me ajudar ?Obrigado !
———————————-
DECLARE
SRC_FILE BFILE;
DST_FILE BLOB;
LGH_FILE BINARY_INTEGER;
V_DIRETORIO VARCHAR2(50);
V_FILE VARCHAR2(50);
BEGIN
V_DIRETORIO := ‘MY_DIR’;
V_FILE := ‘dae.jpg’;SRC_FILE := BFILENAME(V_DIRETORIO, V_FILE);
IF DBMS_LOB.FILEEXISTS(SRC_FILE) = 1 THEN
DBMS_OUTPUT.PUT_LINE(‘EXISTS’);INSERT INTO TEMP_IMAGE(ID, IMAGE_NAME, IMAGE) VALUES (1, V_FILE, EMPTY_BLOB()) RETURNING IMAGE INTO DST_FILE;
SELECT IMAGE INTO DST_FILE FROM TEMP_IMAGE WHERE ID = 1 AND IMAGE_NAME = V_FILE FOR UPDATE;
DBMS_LOB.FILEOPEN(SRC_FILE, DBMS_LOB.FILE_READONLY);
LGH_FILE := DBMS_LOB.GETLENGTH(SRC_FILE);
DBMS_LOB.LOADFROMFILE(DST_FILE, SRC_FILE, LGH_FILE);
UPDATE TEMP_IMAGE SET IMAGE = DST_FILE WHERE ID = 1 AND IMAGE_NAME = V_FILE;
DBMS_LOB.FILECLOSE (SRC_FILE);
ELSE
DBMS_OUTPUT.PUT_LINE(‘NO EXISTS’);
END IF;
COMMIT;
END;12 de agosto de 2013 às 11:46 pm #105744Sergio WilliansMestreVocê já verificou as permissões do arquivo ? Talvez você não tenha acessa a leitura pelo usuário que está executando o código.
Geralmente esse problema ocorre devido a problemas com paths relativos, mas como você afirma que nessa parte do código abaixo ele é encontrado, parece realmente permissão no arquivo. Tente seguir essa linha.
IF DBMS_LOB.FILEEXISTS(SRC_FILE) = 1 THEN
DBMS_OUTPUT.PUT_LINE(‘EXISTS’);13 de agosto de 2013 às 10:48 pm #105752Andrei RubinoParticipanteOlá Will,
Desculpe se não entendi direito…
Permissão de usuário windows do arquivo ?Se for isso tenho controle total, e se não também já tentei executar com o SYS,
o Erro persiste.Obrigado 🙂
14 de agosto de 2013 às 4:46 pm #105756Sergio WilliansMestre@Andrei
Se você tem controle total sobre o arquivo, isso torna o problema mais estranho… 😐
Há alguma chance de algum outro programa ou processo estar com esse arquivo aberto ? (chute)Já fez um teste com algum outro arquivo só por desencargo de consciência ?
15 de agosto de 2013 às 5:20 pm #105765Andrei RubinoParticipanteWill,
Também não há possibilidade de o arquivo estar aberto em outro local.
Vou realizar um teste em uma máquina comum com o Oracle local e posto o resultado.Obrigado pela ajuda !
19 de agosto de 2013 às 3:24 pm #105770Andrei RubinoParticipanteOlá amigos do GPO,
Realizei o teste em uma máquina comum com o Oracle local, e deu certo consegui inserir a imagem.Realmente tem algo que está impedindo o acesso do meu usuário a um diretório no servidor,
não estou com tempo para descobrir o que é que está impedindo, mas pelo menos descobri que
é um problema local.Agradeço o Will pelas dicas.
-
AutorPosts
- Você deve fazer login para responder a este tópico.