Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql UTL_文件选项ORACLE_Plsql_Oracle11g - Fatal编程技术网

Plsql UTL_文件选项ORACLE

Plsql UTL_文件选项ORACLE,plsql,oracle11g,Plsql,Oracle11g,我有一个函数,其中包含对UTL\u文件包的调用。这将从表中读取数据,然后在Linux路径中写入文件 文件已正确生成,但其中的数据显示在不同的行中。 我需要将数据写入文件中的同一行 这可能吗 UTL_文件有这样做的选项吗 FUNCTION f_hisr_archive_name (New_File IN VARCHAR2 ,New_Path IN VARCHAR2 ,ARCHIVE_STRING IN VARCHAR2

我有一个函数,其中包含对
UTL\u文件
包的调用。这将从表中读取数据,然后在Linux路径中写入文件

文件已正确生成,但其中的数据显示在不同的行中。 我需要将数据写入文件中的同一行

这可能吗

UTL_文件有这样做的选项吗

  FUNCTION f_hisr_archive_name
    (New_File          IN VARCHAR2
    ,New_Path          IN VARCHAR2
    ,ARCHIVE_STRING    IN VARCHAR2
    ,hisr_freq_rec     IN HISRFrequency%ROWTYPE
    ) RETURN INTEGER

  IS
  BEGIN

    IF ( ( RTRIM(New_File) = RTRIM(File) ) AND
         ( RTRIM(New_Path) = RTRIM(Path) ) )
    THEN
      null;

    ELSE
      IF ( UTL_FILE.IS_OPEN(arch_file_handle) )
      THEN
        UTL_FILE.FCLOSE(arch_file_handle);
      END IF;

      /*
      || remember new file/path
      */
      File := New_File;
      Path := New_Path;

      arch_file_handle := UTL_FILE.FOPEN(Path, File, 'A');
      HISR_DEBUG.p_hisr_debug_out ('ARCHIVE'
            ,': f_hisr_archive_name  '||'  Path: '|| Path ||'...'|| File ,'YES');

    END IF;

    UTL_FILE.PUT_LINE(arch_file_handle, ARCHIVE_STRING );

    RETURN(1);
输出文件行:

2016/03/03 11:40:05!1.FEP.1.P!菲普!!主站!106-GDA DHL连接! 已收到服务器启动ILIST。已试图 连接到用于DAC历史日志存储的临时数据库。这个 连接状态为:成功


使用
utl\u fil.put()
而不是
utl\u file.put\u line()
显示的代码只向输出文件写入一行???写入一个文件。但里面显示了三行数据。我需要,如果可能的话,只在一行上查看数据。存档字符串中有换行符吗?还是希望多个调用(以追加模式打开文件)继续写入同一行?在这种情况下,使用
put()
仍然是您所需要的,但可能会使用换行作为最终调用?使用utl_file.put()不会写入文件。我看到了错误:ORA-29285:error de escritura de archivo。此外,我还必须更改行:arch\u file\u handle:=UTL\u file.FOPEN(路径,文件'A',2000);相反,arch_file_handle:=UTL_file.FOPEN(路径,文件'A');