PL/SQL package using utl_file.fopen gets invalid_path error

The init.ora file has utl_file_dir = * in it. When writing a package trying to utilize the utl_file.fopen the invalid_path error always occurs. What is the fix to resolve the path error?

create or replace package body TEST_UTL_FILE is
-- Purpose : Sample package that uses UTL_FILE procedure(s)
-- ===========================================================================================================
-- Process Request
-- ===========================================================================================================
procedure Process_Request is
-- Local Variable(s)
v_file_id sys.UTL_FILE.FILE_TYPE;
v_buffer varchar2(32767);
begin
v_file_id := sys.utl_file.FOPEN('D:\Oracle\XMLFiles',
'Sample1.xml',
'R');
sys.utl_file.GET_LINE(v_file_id, v_buffer);
return;
exception
-- Error number -29280
WHEN UTL_FILE.INVALID_PATH THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_path');
-- Error number -29281
WHEN UTL_FILE.INVALID_MODE THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_mode');
-- Error number -29282
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_filehandle');
-- Error number -29283
WHEN UTL_FILE.INVALID_OPERATION THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_operation');
-- Error number -29284
WHEN UTL_FILE.READ_ERROR THEN
RAISE_APPLICATION_ERROR(-20001, 'read_error');
-- Error number -29285
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR(-20001, 'write_error');
-- Error number -29286
WHEN UTL_FILE.INTERNAL_ERROR THEN
RAISE_APPLICATION_ERROR(-20001, 'internal_error');
-- Error number -29287
WHEN UTL_FILE.invalid_maxlinesize THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_maxlinesize');
-- Error number -29288
WHEN UTL_FILE.invalid_filename THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_filename');
-- Error number -29289
WHEN UTL_FILE.access_denied THEN
RAISE_APPLICATION_ERROR(-20001, 'access_denied');
-- Error number -29290
WHEN UTL_FILE.invalid_offset THEN
RAISE_APPLICATION_ERROR(-20001, 'invalid_offset');
-- Error number -29291
WHEN UTL_FILE.delete_failed THEN
RAISE_APPLICATION_ERROR(-20001, 'delete_failed');
-- Error number -29292
WHEN UTL_FILE.rename_failed THEN
RAISE_APPLICATION_ERROR(-20001, 'rename_failed');
-- Error number unknown
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'other_error');
end Process_Request;
end TEST_UTL_FILE;
Errors:
ORA-20001: invalid_path
ORA-06512: at "SYS.TEST_UTL_FILE", line 21
ORA-06512: at line 3

Similar Messages

  • Error while using UTL_FILE.FOPEN

    sir,
    when i write procedure using utl_file.fopen i am getting error as it must be declared PLS-00201. what mistake, i am doing.
    yours
    dr.s.r.bhattachar

    i was under the impression that there will be a moderator who will redirect the question even by mistake we post? is it not?Absolutely not. On the APEX forum we are in the fortunate position of having members of Oracle's APEX team actively involved, but neither they nor any of the other contributors perform the role of moderator or have administrative access to the forum system. The OTN team who do only really perform "moderation" when there has been a breach of the OTN Terms and Conditions.
    If your question has obviously been posted in the wrong forum, or someone thinks you will get a better response elsewhere then generally they'll suggest this, as above.

  • Broken korean characters while using utl_file.fopen

    Hi,
    I have korean data in a table and I need to extract it out.
    Am using utl_file.fopen for this. It extracts, but korean characters are coming broken...
    Is there some setting (NLS_LANG etc) that I need to do? I tried NLS_LANG korean_korea.KO16KSC5601 but didn't help...
    Thanks,
    Sachin

    Please post this question in the Database forum for an appropriate response: General Database Discussions
    Regards,
    OTN

  • HT1414 Im trying to restore my Iphone 4S using Itunes but get "unknown error  -1 " Does anyone have a solution?

    Im trying to restore my Iphone 4S using Itunes but get "unknown error  -1 " Does anyone have a solution?

    Error 1 or -1
    This may indicate a hardware issue with your device. Follow Troubleshooting security software issues, and restore your device on a different known-good computer. If the errors persist on another computer, the device may need service.

  • I do not use wireless, but get wireless errors, why?

    I do not use wireless, but get wireless errors, why?

    Hi Clarence,
    I'm using an i Mac O sx 10.6.8  Even though I'm using wired ethernet access, I can turn airport on and let it run while using the wired connection.  I suppose that condition may cause the errors you're getting.  Is it at all possible that you have your Airport wireless in your Mac Pro turned ON?

  • HT201209 I bought my Apple iTunes & Apple AppStore Card's at Best Buy, but when I try to use them I get this error: The Gift Certificate or Prepaid Card code you entered has not Ben properly activated. What did I do wrong or did Best Buy not scan it right

    I bought my Apple iTunes & Apple AppStore Card's at Best Buy, but when I try to use them I get this error: The Gift Certificate or Prepaid Card code you entered has not Ben properly activated. What did I do wrong or did Best Buy not scan it right! Real Geniuses in that store!

    If so, then review the first link to see if you can troubleshoot your issue yourself. If that doesn't work, then contact iTunes Support via the second link below:
    Invalid, inactive or illegible codes:
    http://support.apple.com/kb/TS1292
    Contact iTunes support here:
    http://www.apple.com/support/itunes/contact/
    Cheers,
    GB

  • Invalid_path exception while using UTL_FILE.FOPEN

    Hi
    I am getting invalid_path exception while using the UTL_FILE.fopen subprogram. I tried finding out the reason but could not solve it. Please help.
    Below is my piece of code.
    create directory utldr as 'e:\utldir';
    declare
    f utl_file.file_type;
    s varchar2(200);
    begin
    dbms_output.put_line('1');
    f := utl_file.fopen('UTLDR','utlfil.txt','r');
    dbms_output.put_line('2');
    utl_file.get_line(f,s);
    dbms_output.put_line('3');
    utl_file.fclose(f);
    dbms_output.put_line('4');
    dbms_output.put_line(s);
    exception
    when utl_file.invalid_path then
    dbms_output.put_line('invalid_path');
    end;
    the result is:
    1
    invalid_path

    I am executing it from sys. The same user who created the directory.
    The output is as below:
    SELECT * FROM dba_directories
    OWNER     DIRECTORY_NAME     DIRECTORY_PATH
    SYS     MEDIA_DIR      d:\avale\rel4\demo\schema\product_media\
    SYS     LOG_FILE_DIR     d:\avale\rel4\assistants\dbca\logs\
    SYS     DATA_FILE_DIR     d:\avale\rel4\demo\schema\sales_history\
    SYS     EMP_DIR     E:\Oracle Directory
    SYS     REMOTED     \\10.1.1.12\oracle directory
    SYS     UTLDR     e:\utldir
    SELECT * FROM dba_tab_privs WHERE table_name='UTLDR'
    GRANTEE     OWNER     TABLE_NAME     GRANTOR     PRIVILEGE     GRANTABLE     HIERARCHY
    PUBLIC     SYS     UTLDR     SYS     READ     NO     NO

  • Archiving files generated by PL/SQL program using UTL_FILE package

    Dear All,
    We have on PL/SQL package that is generating some data files using UTL_FILE package in one specific directory.
    I am working on concurrent program of type host(unix script) to move generated file to some archive folder.
    Now the problem is owner of the files generated by PL/SQL is oracle and file permissions of the generated files are 644(Only read permission for group and others).
    Concurrent program is using an another os user applmgr to execute the script attached with concurrent program.
    Because applmgr is not having write permission on the files, hence mv command is failing.
    Please suggest me how to resolve this issue.
    Regards
    Devender Yadav

    Hi;
    I just think that, you can create one sh which is chancing permission of related path owner for applmgr user and put it on crontab and it can run every 1 min.
    Regard
    Helios

  • Cannot create a file using  UTL_FILE.FOPEN

    Dear All,
    I am using this syntax for creating a file in window
    i have declare this like this
    l_file_id UTL_FILE.file_type;
    l_file_name := 'DHL_'||110570284||'_'||TO_CHAR(SYSDATE,'ddmmyyyy')||'.txt'
    l_file_id :=UTL_FILE.FOPEN('C:\D2R',l_file_name,'W');
    Is this syntax work?
    My database version is oralce 10g
    Thanks

    First of all, UTL_FILE is PL/SQL package and is executed on database server side, not on client side. Therefore, it is trying to create file in directory C:\D2R on database sefrver. So if you want to create file in directory C:\D2R on your client box - you can't. Next point - you are specifying directory explicitly which old and obsolete syntax. It requires, for security reasons to add C:\D2R to init.ora parameter UTL_FILE_DIR, otherwise UTL_FILE will raise an error. You should use directory objects:
    CREATE DIRECTORY dir AS 'C:\D2R';and grant READ/WRITE on it to users. Then use:
    l_file_id :=UTL_FILE.FOPEN('DIR',l_file_name,'W'); -- use directory name in upper caseAnd keep in mind, as I already mentioned UTL_FILE is PL/SQL package and is executed on database server side which means it runs under OS user oracle. Therefore OS user oracle must have write permission on C:\D2R.
    SY.

  • Issue in Calling PL/SQL packages using callable statement

    Hi ,
    I have the requirement of calling two pl/sql packages , After call of first package is successful , i need to pass the output of that first package as input to second package.
    Since i have called both the packages in same method of AM, first package gets executed successfully but second package doesnt get the input values required from first package and results in error.
    Looks like since commit is happening in the single session second package is passed with NULL values.
    Need suggestion for proper way of calling pl/sql packages when second package is dependant on first one:
    Code used inside AM Method:
    if("PENDING_XXX".equals(regVORow.getRegStatus()))
    regVORow.setRegStatus("VENDOR_CREATED");
    getOADBTransaction().commit();
    OracleCallableStatement cStmt = null;
    OADBTransaction dbTxn = getOADBTransaction();
    NUMBER vendor_id = new NUMBER(-1);
    NUMBER vendor_site_id = new NUMBER(-1);
    int vendor_id_value = -2000;
    String vendor_number = null;
    try
    cStmt = (OracleCallableStatement)dbTxn.createCallableStatement("begin *XXB_POS_PVT.create_vendo*r( p_vendor_name => :1, p_supplier_reg_id => :2, p_vendor_id=>:3); end;", 1);
    cStmt.setString(1, regVORow.getSupplierName());
    cStmt.setNUMBER(2, new Number(Integer.parseInt(supplierId)));
    cStmt.registerOutParameter(3, 4);
    cStmt.execute();
    vendor_id = cStmt.getNUMBER(3);
    vendor_id_value = vendor_id.intValue();
    catch(SQLException e)
    throw new OAException(e.getMessage());
    Number vendorId = new Number(vendor_id_value);
    regVORow.setVendorId(vendorId);
    if(vendorId != null)
    vendor_number = getSupplierVendorNumber(vendorId);
    getOADBTransaction().commit();
    AsiPosSupplierOpCosVOImpl regOpCosVO = (AsiPosSupplierOpCosVOImpl)this.getAsiPosSupplierOpCosVO1();
    AsiPosSupplierOpCosVORowImpl row = null;
    int fetchedRowCount = regOpCosVO.getFetchedRowCount();
    RowSetIterator createIter1 = regOpCosVO.createRowSetIterator("createIter1");
    if(fetchedRowCount > 0)
    createIter1.setRangeStart(0);
    createIter1.setRangeSize(fetchedRowCount);
    for(int i = 0; i < fetchedRowCount; i++)
    row = (AsiPosSupplierOpCosVORowImpl)createIter1.getRowAtRangeIndex(i);
    if(row.getApprovalStatus().equalsIgnoreCase("HEAD_APPROVED"))
    try
    oadbtransactionimpl.writeDiagnostics(this,"Creating Site - " + vendor_id_value+" "+row.getSupplierOpcoCode()+" "+supplierId,1);
    cStmt = (OracleCallableStatement)dbTxn.createCallableStatement("begin *XXB_POS_PVT.create_vendor_sites*(p_supplier_reg_id => :1, p_vendor_id=>:2, p_opco_code=>:3, p_vendor_site_id=>:4); end;", 1);
    cStmt.setNUMBER(1, new Number(Integer.parseInt(supplierId)));
    cStmt.setNUMBER(2, new Number(vendor_id_value));
    cStmt.setString(3,row.getSupplierOpcoCode());
    cStmt.registerOutParameter(4, 4);
    cStmt.execute();
    vendor_site_id = cStmt.getNUMBER(4);
    getOADBTransaction().commit();                                    
    catch(SQLException e)
    throw new OAException(e.getMessage());
    createIter1.closeRowSetIterator();

    Hi ,
    There are some validation that can be performed from Entity level ( EO ) , you can go through them in Jdev guide .
    It depends on the business requirement , not all validation can be performed from Entity level .
    Let us know your business requirement , will try to clear your doubt .
    --Keerthi                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Procedure using utl_file.fopen

    Hi ,
    I want to open a file ,read it line by line and if i find one particular word i want to display the whole line.
    I tried writing a procedure but not getting desired output.
    DECLARE
    x utl_file.file_type;
    y varchar2(200);
    BEGIN
    x:= utl_file.fopen('TRACE1',DB_ora_111_trc.txt','R');
    LOOP
    BEGIN
    UTL_FILE.GET_LINE(x,y);
    if x='select' then
    dbms_output.put_line(x);
    end if;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN EXIT ;
    END;
    END LOOP;
    utl_file.fclose(x);
    END;
    Here i am opening a tkprof file and trying to grep for select word and if it is found,display the whole select query.The above is not showing any output.Kindly assist me since i am new to coding.
    Thanks

    user10698496 wrote:
    Hi,
    I am getting only these much as my output . I want to see entire select query.DECLARE
    f utl_file.file_type;
    s varchar2(2000);
    BEGIN
    f := utl_file.fopen('TRACE1','DB_ora_1118250.trc.txt','R');
    LOOP
    BEGIN
    UTL_FILE.GET_LINE(f,s);
    if lower(s) like '%select%' then
    dbms_output.put_line(s);
    end if;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN EXIT ;
    END;
    END LOOP;
    utl_file.fclose(f);
    END;
    SELECT uid,tname,str,acol,hcol,TO__CHAR(u_time,'DD-MM-YYYY
    SELECTgroup,name,address1,state,country,fax_no,
    PL/SQL procedure successfully completed.
    Ok, so that is telling us that you have your queries split over multiple lines?
    In that case you need to "switch on" the output of lines from the moment you find a "select" and then switch it off again when you get a line that indicates the end of the select. So let's assume your selects end with a ";" as the last character on the last line of the select, you can do something like this...
    DECLARE
      f utl_file.file_type;
      s varchar2(2000);
      in_select boolean;
    BEGIN
      f := utl_file.fopen('TRACE1','DB_ora_1118250.trc.txt','R');
      in_select := false;
      LOOP
        BEGIN
          UTL_FILE.GET_LINE(f,s);
          if lower(s) like '%select%' or in_select then
            dbms_output.put_line(s);
            in_select := not(s like '%;'); -- stop when we get to ";" at end of a line.
          end if;
        EXCEPTION
          WHEN NO_DATA_FOUND THEN EXIT ;
        END;
      END LOOP;
      utl_file.fclose(f);
    END;
    Also i attempted to cut only table name from the output select query.I tried something like o :=substr(s,instr(s,'from')+4);PFB the code and output.Pls let me know where am i going wrong.
    DECLARE
    2  f utl_file.file_type;
    3  s varchar2(2000);
    4  op varchar2(1000);
    5  BEGIN
    6  f := utl_file.fopen('TRACE_EXTRACT','DB_ora_1118250.trc.txt','R');
    7  LOOP
    8  BEGIN
    9  UTL_FILE.GET_LINE(f,s);
    10  if lower(s) like '%select%' then
    11  op :=substr(s,instr(s,'from')+4);
    12  dbms_output.put_line(op);
    13  end if;
    14
    15  EXCEPTION
    16  WHEN NO_DATA_FOUND THEN EXIT ;
    17  END;
    18  END LOOP;
    19  utl_file.fclose(f);
    20  END;
    21  /
    ECT uid,tname,str,acol,hcol,TO__CHAR(u_time,'DD-MM-YYYY
    ECTgroup,name,address1,state,country,fax_no,
    that's because there is no "from" on those lines, so the result of the instr is 0 and you are adding 4, so you are getting all characters from character 4 onwards.
    What you need in conjunction with my above suggestion is something like this...
    DECLARE
      f utl_file.file_type;
      s varchar2(2000);
      in_select boolean;
    BEGIN
      f := utl_file.fopen('TRACE1','DB_ora_1118250.trc.txt','R');
      in_select := false;
      LOOP
        BEGIN
          UTL_FILE.GET_LINE(f,s);
          if lower(s) like '%select%' or in_select then
            dbms_output.put_line(s);
            if lower(s) like '%from%' then
              dbms_output.put_line('TABLES: '||substr(s,instr(s,'from'+5))); -- +5 to get past the from and the space character after it.
            end if;
            in_select := not(s like '%;'); -- stop when we get to ";" at end of a line.
          end if;
        EXCEPTION
          WHEN NO_DATA_FOUND THEN EXIT ;
        END;
      END LOOP;
      utl_file.fclose(f);
    END;
    /

  • Problem in using UTL_FILE.FOPEN with filename containing accent characters

    select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
    VALUE
    AL32UTF8
    declare
    l_output UTL_FILE.FILE_TYPE;
    filename varchar2(100) := 'Avenue des Champs-Élysées.txt';
    begin
    l_output := UTL_FILE.FOPEN ('UPLOAD_DIR', filename, 'W');
    utl_file.put_line (l_output, 'Testing');
    utl_file.fclose(l_output);
    end;
    The file in the UPLOAD_DIR becomes "Avenue des Champs-Élysées.txt"
    can anyone tell me what NLS settings I should use in order to create file with correct filename ?

    symplik wrote:
    The file in the UPLOAD_DIR becomes "Avenue des Champs-Élysées.txt"And what does the o/s file system support and what is the operating system's NLS settings?
    If there is a mismatch between what you do in your code in Oracle, and what the o/s is configured for, then this type of "+translation+" error is to be expected.

  • Unable to create file using : =utl_file.fopen

    Hi Team,
    My issue is file is not getting created, i checked the permissions of the directory.
    No error is received while executing the below script .
    declare
    f1 utl_file.file_type;
    begin
    f1:=utl_file.fopen('TAX_CODE_OUT_FILE_PATH','test.txt','W');
    utl_file.put_line(f1,'memocan');
    utl_file.fclose(f1);
    end;
    Any suggestion why file is not getting created ?

    i tried the following :
    declare
    V1 VARCHAR2(32767);
    f1 utl_file.file_type;
    begin
    F1 := UTL_FILE.FOPEN('TAX_CODE_OUT_FILE_PATH','in.txt','R');
    UTL_FILE.GET_LINE(F1,V1,32767);
    UTL_FILE.FCLOSE(F1);
    end;
    Error is thrown as following ;
    Error report:
    ORA-29283: invalid file operation
    ORA-06512: at "SYS.UTL_FILE", line 537
    ORA-29283: invalid file operation
    ORA-06512: at line 6
    29283. 00000 - "invalid file operation"
    *Cause:    An attempt was made to read from a file or directory that does
    not exist, or file or directory access was denied by the
    operating system.
    *Action:   Verify file and directory access privileges on the file system,
    and if reading, verify that the file exists.
    Any suggestions ??

  • When I try to use Safari I get an error message that states it can not find server Xn--%20%20-1ia0eb092a

    When I try to use safari I get a message that states can not find server Xn--%20%20-1ia0eb092a

    It sounds like you've got a messed-up homepage. Click the Safari menu, click Preferences, and under "Home page", re-type the page you'd prefer to load when Safari starts (eg "nytimes.com" or whatever). Close preferences and try again.
    Matt

  • Posting period 011 2013 is not open while posting the document using F-02 getting the error

    Hi SAP Captains,
    Pls help me here.
    While posting the document using T-code F-02 getting the error "Posting period 011 2013 is not open.
    Please help me how to do, can you provide step by step.
    Rgds..Suresh

    Hi Suresh,
    You can search google and will get number of posts on this. This will lead to duplication of similar posts on forum.
    The message says "FI posting period is closed for 11th period of 2013". In which period you are trying to post the transaction?
    If it is past, open the FI posting periods in OB52.
    BR, Srinivas Salpala

Maybe you are looking for

  • 7.3.2 Upgraded with new security upgrade with bad result

    Upgraded and now have a dim terminal screen. How do I get a fully lit screen? Message was edited by: ricardojh

  • EDI 810 Inbound

    Hi, i am trying to post an Inbound Idoc through message type:INVOIC.I have configured every thing and now able to post the Idoc by using WE19,Now i have file in application server with naming format OH_810_xxxxxxx.EDI. I am using the existing FILE po

  • SSH user, via Open Directory, can't SUDO...

    On three of my Xserves I have SSH access restricted to a handful of users and these users are Open Directory-based users. Aside from the fact that these users don't have a home directory on the servers they connect to (as they're not local users to t

  • VTC to CCM Configuration

    We have Radvision Gatekeeper, Polycomm VTC Endpoints. We can call from CCM IP Phone to VTC, no problem, but when calling IP Phone from VTC we have bad garbled conversation, which doesnt sound like QOS more like distortion. Any thoughts?

  • Backspace Taking Out of Application.

    Hi, I am having a issue with the backspace as its causing me to go to the previous page or sometimes to out of the app. For example, after opening a popup, if I try to make a change and during that if I press the backspace, I move to the previous scr