2014-05-30 4 views
7

Sto cercando di scrivere in un file da una procedura:Come scrivere un file di testo da Pl/SQL, PLS errore 00363

out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W'); 

    Utl_File.Put_Line(out_file , 'Hi this is text file!'); 
    Utl_File.FClose(out_file); 

errori di compilazione per il pacchetto xxxxxxxx

Error: PLS-00363: âûðàæåíèå 'OUT_FILE' íå ì.á. èñïîëüçîâàíî êàê àäðåñàò íàçíà÷åíèÿ 
Line: 795 
Text: out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W'); 

Error: PL/SQL: Statement ignored 
Line: 795 
Text: out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W'); 

Error: PLS-00363: 'OUT_FILE' íå ì.á. èñïîëüçîâàíî êàê àäðåñàò íàçíà÷åíèÿ 
Line: 797 
Text: Utl_File.FClose(out_file); 

Error: PL/SQL: Statement ignored 
Line: 797 
Text: Utl_File.FClose(out_file); 

Così questo è il mio codice e mi dà questo errore, cosa c'è che non va?

+0

trovato bug creare proc aproc ( var nel tipo outfile nel tipo ) –

+0

l'ho fatta solo, sola lettura –

+0

Questa non è la vostra intera procedura e alcuni dei messaggi di errore non sono in qualsiasi lingua. Puoi tradurlo per favore? – Ben

risposta

17

In primo luogo, è necessario creare un oggetto directory per accedere alla directory C: \ test:

CREATE OR REPLACE DIRECTORY CTEST AS 'C:\test'; 
GRANT READ ON DIRECTORY CTEST TO PUBLIC; 

successivo, è necessario utilizzare questo oggetto directory quando si apre il file:

DECLARE 
    out_File UTL_FILE.FILE_TYPE; 
BEGIN 
    out_File := UTL_FILE.FOPEN('CTEST', 'batotest.txt' , 'W'); 

    UTL_FILE.PUT_LINE(out_file , 'Hi this is text file!'); 
    UTL_FILE.FCLOSE(out_file); 
END; 

Condividi e divertiti.

Problemi correlati