本帖最后由 c4a4s4d4 于 2009-09-24 09:48:01 编辑

解决方案 »

  1.   

    可能是对目录没有写的权限,用user_tab_privs_recd表看看SELECT owner, table_Name, privilege FROM user_tab_privs_recd
     WHERE table_name='DATA_SHIPPING';
      

  2.   

    感谢  zcs_1 的答复。
    但是,结果如下:1 SYS DATA_SHIPPING READ
    2 SYS DATA_SHIPPING WRITE还是不能 写!
      

  3.   


    DATA_SHIPPING 这个dictionary 你是不是已经create了。 dictionary是不是已经给了read write 权限。grant 一下 这个dictionary的权限。
      

  4.   

    检查一下,在linux下的目录的权限。
      

  5.   


    你这里是用sys用户操作的吗。  这里只是sys有这个权限哟。
      

  6.   

    to:inthirties
    DATA_SHIPPING 这个 dictionary 已经存在 并且有 读写权限。
    操作系统的相应目录也有。
    就是不好用。还请各位大侠 这点一下 小弟。
      

  7.   


    to:inthirtiessys 用户  操作  还是不好用!
      

  8.   


    有没有os里的访问权限。sys都不行,有什么错误出来
      

  9.   

    ORA-29283:無効なファイル操作です。
    ORA-06512:"SYS.UTL_FILE",行475
    ORA-29283:無効なファイル操作です。
    ORA-06512:行6
      

  10.   

    我的 ORACLE 是 10G 的 !!
    这个有影响么!????
      

  11.   

    来自metalink的说法,请参考
    Goal
    This article will explain you the general scenario when ORA-29283 (INVALID FILE OPERATION) can be thrown from UTL_FILE package while accessing operating system file and how to debug the exception Solution
    The error can be raised because of the following causes. 
    General causes and solutions of ORA-29283 error :
    -------------------------------------------------------------------------------- 1. Check whether the schema where the PLSQL code is run has READ,WRITE permission on the database directory. If SCOTT is the schema , then login as SYS grant required permission. GRANT READ,WRITE ON DIRECTORY <DIR_NAME> TO SCOTT --------------------------------------------------------------------------------
    2. Check whether the path used in database directory physically exists on the OS. Eg : CREATE OR REPLACE DIRECTORY DIRNAME as '/home/test'; /home/test should exist on the OS. When the database directory is created , oracle doesnt check the validity of the directory path used. The validation of the path is done at the runtime. Hence it is necessary to check the file path on OS before the program is executed. 
    --------------------------------------------------------------------------------
    3. Check whether the owner of oracle process has enough permission on the OS directory where the file is accessed. ]$ ls -l /u01/app/oracle/product/10.2/db_1/bin/oracle 
    -rwsr-s--x 1 oracle oinstall 96725778 Jul 7 2008 /u01/app/oracle/product/10.2/db_1/bin/oracle "oracle" is the owner of the oracle executable. oracle - user should have enough permission on the directory. ]$ su oracle 
    Password: 
    ]$ whoami 
    oracle 
    ]$touch /home/test/abc.txt You should be able to create a file using touch command login as the owner of the oracle process.
    --------------------------------------------------------------------------------
    4. Make sure you have restarted the listener once you have done any OS level changes to the directories accessed by RDBMS. 
    Once you have done any changes in OS level permission, you should always restart the listener so that it inherits the recently changed permission. Else oracle will sometime raise a ora-29283 error. 
    --------------------------------------------------------------------------------
    5. Even though oracle-user has enough permissions on the directory, it may raise ora-29283 if the owner of the file is not oracle. If the file is created with the rw-r-- permission and owned by another user, RDBMS wont be able to read the file. In such case you will have to change the permissions of the file to rw-rw-- chmod 750 <filename> --------------------------------------------------------------------------------
    6. Using remote directories : UTL_FILE package can access only server side files where the database instance is running. You cannot access client side files. If you are using UNIX system, then create a NFS mount of the client folder on the server . If on Windows platform then go throughNote 45172.1 : Running UTL_FILE on Windows NT Note 1034188.6: INVALID_OPERATION Exception from UTL_FILE when Writing to/from Network Drive Solution : 
    Start the Oracle service as a user who has the same permissions as SYSTEM, and also who has access to the shared directory. 
    --------------------------------------------------------------------------------
    7. Check ORA_NLS on application server : If the ORA_NLSXX where XX is 32, 33 or 10 is set, it must be set before starting the database and on the client side too. Note 77442.1 : ORA_NLS (ORA_NLS32, ORA_NLS33, ORA_NLS10) Environment Variables explained 
      

  12.   

    解决方案:
    好像是操作系统 对操作的文件的权限不足,要添加权限。chmod -R 777 <要操作的文件>