UTL_file:即使遇到空行也继续读取

时间:2015-06-09 19:08:30

标签: sql plsql plsqldeveloper

我是pl / sql的新手,也许这听起来很傻,但我有一个问题。通过使用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

我知道如何才能显示所有文件内容,而不仅仅是空格?

1 个答案:

答案 0 :(得分: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)),并且您可以确定哪些行包含数据而哪些行不包含数据。 希望这有帮助!!!。