Oracle 如何假脱机此pl/SQL过程的结果

Oracle 如何假脱机此pl/SQL过程的结果,oracle,plsql,Oracle,Plsql,是的,我知道,我也读过,不可能假脱机pl/sql程序,那个人应该使用utl_文件,但实际上,我不知道它是如何工作的。有人能帮忙吗?或者只是告诉我怎么做 这是我的代码,我有一个游标,我想将这个游标的结果假脱机,你可以在dbms_输出中看到 set serveroutput on clear screen; spool C:\Users\p.k\Documents\text.txt declare l_output utl_file.file_type; cursor cp_

是的,我知道,我也读过,不可能假脱机pl/sql程序,那个人应该使用utl_文件,但实际上,我不知道它是如何工作的。有人能帮忙吗?或者只是告诉我怎么做

这是我的代码,我有一个游标,我想将这个游标的结果假脱机,你可以在dbms_输出中看到

set serveroutput on
clear screen;

spool C:\Users\p.k\Documents\text.txt

declare
    l_output   utl_file.file_type;
    cursor cp_username (p_v_username in varchar2)
    is
       select owner, table_name          
       from   all_tables
       where owner = p_v_username
       order by owner, table_name ;   
begin
     l_output := utl_file.fopen();
     dbms_output.put_line('Alle Tabellen der User: &g_username');
     for cp_kur in cp_username('&g_username') loop
         dbms_output.put_line('Tabelle: '|| cp_kur.table_name );
     end loop;
end;

spool off;


我已经开始首先使用spool,但他已经创建了文件,并将输出与错误放在一起,然后我开始使用utl_文件查看教程。。。但是我现在迷路了

您需要使用
utl\u文件。请按如下方式放置

declare
    l_output   utl_file.file_type; 
begin
     l_output := utl_file.fopen(
                  'utl_dir' -- File location
                , 'test_file.txt' -- File name
                , 'w' -- Open mode: w = write.
                    );
     utl_file.put(l_output,'Alle Tabellen der User: &g_username');
     for cp_kur in (select owner, table_name          
       from   all_tables
       where owner = '&g_username'
       order by owner, table_name) loop
         utl_file.put(l_output, 'Tabelle: '|| cp_kur.table_name );
     end loop;
     utl_file.fclose(l_output);
end;

我使用过你的版本,但我有一些错误,比如:我必须声明id“FHANDLE”,变量l_output中有太多的东西,我不知道它是否与你一起工作我使用过你的版本,但我还有一个错误:变量l_output中有太多的东西,我不知道它是否与你一起工作,谢谢我尝试并有一个pb同样,由于我的服务器使用Linux操作系统,并且没有“C:\Users\p.k\Documents”,我只能在我的PC上本地访问。但我有一个问题,“我不可能只使用spool?
utl\u文件
只能在DB服务器上写入该文件。”。如果要在本地系统(DB客户端)中创建文件,则需要SPOOL。你需要自己试一下线轴,如果你发现任何困难,那么就穿上它。