Есть ли способ поместить процедуру в utl_file для печати части содержимого файла в plsql? - PullRequest
0 голосов
/ 25 мая 2019

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

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

Идея кода демонстрирует, как показано ниже, нов сообщении об ошибке указано: ORA-06550 и PLS-00222: no function with name 'header' exists in this scope.

. Вот почему я хочу знать, может ли SQL так поступить?

procedure print_document is

   -- Variables for writing data to file
   v_file utl_file.file_type;
   v_utlDir VARCHAR2(35) := get_dir('Directory','Dir');
   v_utlFileName VARCHAR2(35);

Begin

   --Open file and Write to file
   SELECT test.dat' into v_utlfilename from dual;
   v_file := utl_file.fopen(v_utlDir, v_utlFileName, 'W');  

   --print header, body, footer
   utl_file.put_line(v_file,header); -- the header is a procedure
   utl_file.put_line(v_file,body);
   utl_file.put_line(v_file,footer);

   utl_file.fclose(v_file);        
      --
      EXCEPTION WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('Error in SQL. The error is');
         DBMS_OUTPUT.PUT_LINE(SQLERRM);  
End;

В идеале, если я вызываю print_document процедурутогда он напечатает все строки в консоли cmd.

...