как получить заголовки столбцов при выводе текста с помощью хранимой процедуры - PullRequest
0 голосов
/ 29 апреля 2020

Нужен отчет в текстовом формате с заголовками столбцов, который хранится ниже, получает выходные данные, но не отображает заголовок столбцов. Есть простой способ получить заголовки столбцов в выходном файле.

create or replace procedure report  as
         CURSOR t1
          IS
            select col1, col2,col3,col4,col5 from tab;
              t1cur t1%rowtype;
              vFile UTL_FILE.file_type; 
              vExists boolean;
              vLength number;
              vBlockSize number;
              p_WriteMode varchar2(10);
              p_Header varchar2(10);
              p_path  varchar2(100) := '/tmp';
              p_FileName  varchar2(100) := 'test.txt';                    


       BEGIN
                 UTL_FILE.fgetattr(p_path, p_FileName, vExists, vLength, vBlockSize);
                 OPEN t1;
                 LOOP

          FETCH t1 INTO t1cur;

            IF t1%ROWCOUNT>0
            THEN
            IF vExists THEN
                     vFile := UTL_FILE.FOPEN_NCHAR(p_Path, p_FileName, p_WriteMode);
              ELSE
                  vFile := UTL_FILE.FOPEN(p_Path, p_FileName, 'W');
              END IF;

            IF p_Header IS NOT NULL THEN 
                UTL_FILE.PUT_LINE(vFile, p_Header);
                END IF;
                 UTL_FILE.PUT_LINE(vFile, t1cur.col1 || '|' ||t1cur.col2 || '|' ||t1cur.col3 || '|' || t1cur.col4|| '|' ||t1cur.col5);
              DBMS_OUTPUT.PUT_LINE('Record count > 0');

              LOOP

                FETCH t1 INTO t1cur;
                EXIT WHEN t1%NOTFOUND;
                UTL_FILE.PUT_LINE(vFile, t1cur.col1 || '|' ||t1cur.col2 || '|' ||t1cur.col3 || '|' || t1cur.col4|| '|' ||t1cur.col5);
             END LOOP;

             UTL_FILE.FCLOSE(vFile);
        ELSE
            DBMS_OUTPUT.PUT_LINE('Record count = 0');

            END IF; 
            EXIT;

      END LOOP;
      CLOSE t1;
    END;
  /

Ссылается: Как записать в файлы, используя utl_file в oracle https://asktom.oracle.com/pls/asktom/f?p=100: 11: 0 :: NO :: P11_QUESTION_ID: 88212348059

...