Oracle - Ruta de oracle

 
Vista:

Ruta de oracle

Publicado por Bea (1 intervención) el 16/11/2017 16:00:46
Buenas tardes,

He creado un procedimiento y este tiene la ruta donde oracle accede ('/home/oracle/inputs';) y lee unos ficheros, pues bien esta ruta tiene usuario y contraseña y no se como ponerlo para que funcione.

Adjunto un trozo de mi procedimiento.

Mil gracia,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
create or replace PROCEDURE          P_CRGCCE(Fichero varchar2 ) is
 
Vfile UTL_FILE.FILE_TYPE;
dp_dir varchar2(200);
sqlQ varchar2(200);
sqlQ2 varchar2(200);
nombre_sub_tab varchar2(200);
linea_completa varchar2(32767);
v_mensaje_error   VARCHAR2(1500);
 
id_fichero NUMBER(10);
id_registro  NUMBER(10);
id_registro_ini  NUMBER(10);
mov varchar2(1);
v_registros_leidos NUMBER(6);
v_registros_cargados NUMBER(6);
v_registros_rechazados NUMBER(6);
v_aux NUMBER(10);
contar NUMBER(10);
 
BEGIN
 
    dp_dir := '/home/oracle/inputs';
    sqlQ := 'create or replace directory DIR0001 as ''' || dp_dir || '''';
    EXECUTE IMMEDIATE (sqlQ);
 
    sqlQ2 :='GRANT READ ON DIRECTORY DIR0001 TO PUBLIC';
    EXECUTE IMMEDIATE (sqlQ2);
    Vfile:=UTL_FILE.FOPEN('DIR0001',Fichero, 'R');
 
    UTL_FILE.GET_LINE(Vfile,linea_completa);
    SYS.DBMS_OUTPUT.ENABLE;
    id_fichero:=S_FILE.nextval;


Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil

Ruta de oracle

Publicado por anonymous (15 intervenciones) el 17/11/2017 15:46:35
Tu problema no es tanto de la ruta en si, sino que debes otorgar permiso a tu usuario sobre la libreria: UTL_FILE

Así:
Entrar a la base de datos con SQL*PLUS con el usuario “sys” como “sysdba” y ejecutar el siguiente comando que otorga privilegios de ejecución sobre el paquete “UTL_FILE”

Grant EXECUTE ON UTL_FILE TO PUBLIC;
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO XXXXXX;

Donde XXXXXX será tu schema o base de datos

Si algo me escribes. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Ruta de oracle

Publicado por Rafael (328 intervenciones) el 20/11/2017 16:48:05
Pues lo dudo por que le estas dando permisos al DIRECTORIO ORACLE DATA_PUMP_DIR...

Pero NO implica que este configurado a '/home/oracle/inputs'

Lo CORRECTO y COMPLETO seria CREAR un directorio ejemplo:

CREATE OR REPLACE DIRECTORY dp_dir AS '/home/oracle/inputs';
Y despues decir
GRANT READ, WRITE ON DIRECTORY dp_dir TO XXXXXX;

PERO....

A este directorio debe tener acceso el usuario con que instalaste Oracle. Ya que sera el usuario con que realmente trabaje el UTL_FILE

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar