2015-06-09 5 views
0

Я новичок в pl/sql и, возможно, это звучит глупо, но у меня есть вопрос. Используя utl_file, я читаю текстовый файл. Но мой текстовый файл содержит пробелы между строками, и мне нужно продолжать читать весь контент даже после этого пробела. ниже я отобразил свой код, который я использовал, и шаблон моего текстового файла.UTL_file: продолжить чтение, даже если он встречает пустые строки

DECLARE 
     V1 VARCHAR2(200); 
     F1 UTL_FILE.FILE_TYPE; 
    BEGIN 

     F1 := UTL_FILE.FOPEN('directory','text.txt','R'); 

     Loop 
     BEGIN 
    UTL_FILE.GET_LINE(F1,V1); 
    dbms_output.put_line(V1); 
    EXCEPTION WHEN No_Data_Found THEN EXIT; END; 
     end loop; 
     dbms_output.put_line(emptylines); 

     UTL_FILE.FCLOSE(F1); 
    END; 
    /

Шаблон моего текстового файла

alarma2 
alarma2 
alarma2 


alarma3 
alarma3 
alarma3 
alarma3 

Любая идея, как я могу сделать, чтобы отобразить все содержимое файла, а не только до пустого пространства?

ответ

0

Может быть, вы могли бы попробовать это:

... 
    Loop 
    BEGIN 
     UTL_FILE.GET_LINE(F1,V1); 
     IF (TRIM(V1) is not null) AND ((TRIM(V1) <> CHR(10)) OR (TRIM(V1) <> CHR(13))) THEN 
        dbms_output.put_line(V1); 
     END IF; 
... 

Я не знаю, что вы имеете в виду с dbms_output.put_line(emptylines);, так что я не забочусь бой это :). Возможно, вы можете проверить, не обрабатывается ли строка, которую вы обрабатываете, и не имеет возврата каретки (CHR (13)) или строки (CHR (10)), и с этим вы можете определить, какие строки содержат данные, а какие нет. Надеюсь, что эта помощь !!!.

+0

Спасибо, человек! это работает . – Silviu

Смежные вопросы