标签: utl-file

UTL_FILE.FOPEN()过程不接受目录路径?

我试图在存储在c:\驱动器名为vin1.txt的文件中写入并收到此错误.请提示!

> ERROR at line 1: ORA-29280: invalid
> directory path ORA-06512: at
> "SYS.UTL_FILE", line 18 ORA-06512: at
> "SYS.UTL_FILE", line 424 ORA-06512: at
> "SCOTT.SAL_STATUS", line 12 ORA-06512:
> at line 1
Run Code Online (Sandbox Code Playgroud)

这是代码

  create or replace procedure sal_status
   (
    p_file_dir IN varchar2,
    p_filename IN varchar2)
     IS  
    v_filehandle utl_file.file_type;
    cursor emp Is
        select * from employees
        order by department_id;
    v_dep_no departments.department_id%TYPE;
     begin
         v_filehandle :=utl_file.fopen(p_file_dir,p_filename,'w');--Opening a file
         utl_file.putf(v_filehandle,'SALARY REPORT :GENERATED ON %s\n',SYSDATE);
         utl_file.new_line(v_filehandle);
         for v_emp_rec IN emp LOOP
            v_dep_no :=v_emp_rec.department_id; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle9i utl-file

24
推荐指数
3
解决办法
27万
查看次数

如何从Pl/SQL写入文本文件,PLS错误00363

我试图从一个过程写入一个文件:

out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W');

  Utl_File.Put_Line(out_file , 'Hi this is text file!');
  Utl_File.FClose(out_file);
Run Code Online (Sandbox Code Playgroud)

PACKAGE xxxxxxxx的编译错误

Error: PLS-00363: âûðàæåíèå 'OUT_FILE' íå ì.á. èñïîëüçîâàíî êàê àäðåñàò íàçíà÷åíèÿ
Line: 795
Text: out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W');

Error: PL/SQL: Statement ignored
Line: 795
Text: out_File := Utl_File.FOpen('C:\test', 'batotest.txt' , 'W');

Error: PLS-00363: 'OUT_FILE' íå ì.á. èñïîëüçîâàíî êàê àäðåñàò íàçíà÷åíèÿ
Line: 797
Text: Utl_File.FClose(out_file);

Error: PL/SQL: Statement ignored
Line: 797
Text: Utl_File.FClose(out_file);
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码,它给了我这个错误,有什么问题?

oracle plsql utl-file

11
推荐指数
1
解决办法
5万
查看次数

Oracle PL/SQL UTL_FILE.PUT缓冲

我正在从Oracle存储过程编写一个大于7MB的大文件,并且要求在每条记录的末尾没有行终止字符(没有回车符/换行符).

我已经使用UTL_FILE.PUT编写了一个存储过程,并且我正在使用UTL_FILE.FFLUSH跟随每次调用UTL_FILE.PUT.虽然我正在进行FFLUSH调用,但是当我写入超过缓冲区大小(设置为max 32767)的点时,此过程会出现写入错误.如果我用PUT_LINE调用替换PUT调用,该过程可以正常工作.

如果没有换行符,是否无法写入超过缓冲区大小的内容?如果是这样,有解决方法吗?

oracle plsql put fflush utl-file

5
推荐指数
1
解决办法
1万
查看次数

在Oracle中建议加密的方法是什么?

我需要Oracle /安全专家的帮助.

我将在Oracle DB中创建加密/解密函数.我打算dbms_cryptoAES256.我知道我应该将密钥文件存储在O/S中并使用它来读取它utl_file.

这是一个好主意吗?这种方法有什么问题吗?例如,如果密钥文件被函数的10个调用者同时读取,那么utl_file是否会出现问题?还有其他建议吗?

我确信这是一件非常普遍的事情.有谁知道我在哪里可以找到这样做的好样品?

由于这与安全相关,我更愿意遵循其他人遵循的标准.

database security oracle cryptography utl-file

5
推荐指数
1
解决办法
2万
查看次数

读取文本文件以将数据插入Oracle SQL表

我正在研究Oracle SQL开发人员.

我正在做的是从文件夹中逐行读取文本文件.然后将数据插入SQL表.

我能够编译我的PROCEDURE,但是,它似乎没有将数据插入文件.

Create or Replace PROCEDURE Rfile is
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200); 
BEGIN
f := UTL_FILE.FOPEN('C:\Projects\','testdatabinary.txt','R');
  IF UTL_FILE.IS_OPEN(f) THEN
    LOOP
      BEGIN
        UTL_FILE.GET_LINE(f,s);
        IF s IS NULL THEN
          EXIT;
        END IF;
      INSERT INTO DATAINSERT
      (COLUMN1, COLUMN2)
      VALUES
      (s, 'testdatabinary');
      END;
  END LOOP;
  COMMIT;
  END IF;
 END;
Run Code Online (Sandbox Code Playgroud)

我有一个表DATAINSERT与两个varchar(200)类型cols

我不确定PROCEDURE没有将数据插入表格的原因

我刚检查过错误信息

Error starting at line 1 in command:
EXEC Rfile
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at "SYSTEM.RFILE", line 5
Run Code Online (Sandbox Code Playgroud)

sql oracle11g oracle-sqldeveloper utl-file

4
推荐指数
2
解决办法
8万
查看次数

对于大于32kb的文件,BLOB导出速度很慢

我需要从我们的Oracle 11g(11.2.0.3)系统导出BLOB.该过程适用于<32,767字节的BLOB(JPG照片).我可以使用dbms_log.read和utl_file.put_raw在5秒内将约4000张照片导出到数据库服务器上的本地目录.如果文件超过读缓冲区的32,767字节限制,那么这就是性能问题的开始.我已经看过关于确切性能问题的类似帖子,但所提供的解决方案已经被研究过但没有成功.基于监视工具,CPU,I/O和内存在导出期间不会受到压力.我试图理解为什么较大的BLOB(所有它们都在100K以下)必须以32,767字节增量拼接在一起,与32,767字节以下的BLOB相比,具有如此巨大的输出缓慢.导出大型BLOB时,每个文件最多可能需要15秒才能导出.

慢速斑点提取的相关文章

BLOB导出调优的相关文章

有没有人经历过BLOB导出缓慢,文件大于32,767字节?

DECLARE

  CURSOR cur_photo IS
    select  substr(c.custnum, -7, length(c.custnum)) custnum,
            cp.cust_id,
            cp.photo 
    from customer c
    inner join customer_photo cp
      on c.cust_id = cp.cust_id
    inner join customer_def_grp_value cdv
      on c.cust_id = cdv.cust_id;

  select_sql varchar2(225);
  l_file      UTL_FILE.FILE_TYPE;
  l_buffer    RAW(32767);
  l_amount    PLS_INTEGER := 32767;
  l_pos       PLS_INTEGER := 1;
  l_blob      BLOB;
  l_blob_len  PLS_INTEGER;
  l_filename  varchar2(225);
  error_number varchar2(225);
  error_message varchar2(225);

BEGIN
  --dbms_output.put_line('Starting at: ' || to_char(systimestamp, 'DD-MON-YYYY HH:MI:SS.FF6'));
  --DBMS_OUTPUT.ENABLE (buffer_size => NULL); 
  FOR custphoto IN cur_photo LOOP
    --dbms_output.put_line('In the loop ' …
Run Code Online (Sandbox Code Playgroud)

performance blob export oracle11g utl-file

2
推荐指数
1
解决办法
3374
查看次数

Oracle - 使用存储过程创建文本文件

需要有关在 Oracle 10 中使用存储过程创建文本文件的帮助。我对此很陌生,所以请从头开始指导我。

我找到了代码并将其创建为存储过程。我运行它并且它是有效的。但我执行了它,我得到了错误"INVALID FILE NAME... AT SYS.UTL_FILE..."

我首先创建了一个授予目录读取、写入权限的目录。

CREATE OR REPLACE PROCEDURE refcursorkim IS
   l_file      utl_file.file_type;
   l_file_name VARCHAR2(60);
BEGIN
l_file := utl_file.fopen('UTL_DIR', l_file_name, 'w');          
   SELECT 'KY' || TO_CHAR(SYSDATE, 'yyyymmdd') || '1.txt' INTO l_file_name  FROM dual;
   utl_file.putf(l_file,l_file_name);
   utl_file.fclose(l_file);
END refcursorkim;
Run Code Online (Sandbox Code Playgroud)

我不知道我错过了什么,因为我对此根本不熟悉。另一件事是,文件是否会自动在指定的目录中创建?

希望你能帮助我。谢谢你,愿上帝保佑!

oracle utl-file

2
推荐指数
1
解决办法
6万
查看次数

ORACLE 11G UTL_FILE + UTL_FILE_DIR - 目录无效

嗨我正在运行Oracle 11,我正在尝试使用UTL_FILE.FOPEN写入服务器盒上的目录.

为了测试这个,我使用以下脚本(包括输出):

SQL> @D:\test.sql

declare

l_file_handle              UTL_FILE.FILE_TYPE;

begin
  l_file_handle := UTL_FILE.FOPEN('/appl/mydir',
                                  '/appl/mydir/filename',
                                  'W');

  UTL_FILE.FCLOSE(l_file_handle);

  DBMS_OUTPUT.PUT_LINE('FINISHED');

end;

ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 7

SQL>
Run Code Online (Sandbox Code Playgroud)

我将/ appl/mydir添加到UTL_FILE参数:

SELECT value
FROM V$PARAMETER
WHERE NAME = 'utl_file_dir';

/appl/mydir, /appl/mydir2, /appl/mydir3
Run Code Online (Sandbox Code Playgroud)

所有UNIX上的UNIX目录都是可写的:

$ ls -l /appl/mydir
total 0
drwxrwsrwx    2 user userc 363968 Nov 27 13:46 mydir
Run Code Online (Sandbox Code Playgroud)

使用oracle Directory对象不是一个选项,我知道使用UTL_FILE_DIR实现的缺点.

以上脚本失败的任何想法?

oracle oracle11g utl-file

1
推荐指数
1
解决办法
8万
查看次数

Delimeter文件问题

我有一个没有固定结构的平面文件

 name,phone_num,Address
 bob,8888,2nd main,5th floor,avenue road
Run Code Online (Sandbox Code Playgroud)

这里最后一列Address有值,2nd main,5th floor,avenue road但由于相同的分隔符,用于分隔列,我也没有得到任何线索如何处理相同.

平面文件的结构可能会因文件而异.如何在导入时使用这种平面文件Informatica or SQL * Loader or UTL Files

我将无法访问平面文件只是我应该从它读取数据,但我不能编辑平面文件中的数据.

oracle informatica utl-file informatica-powercenter sql-loader

0
推荐指数
1
解决办法
520
查看次数

如何使用Oracle utl_file输出扩展的ascii字符

我正在使用写文件

l_file := utl_file.fopen('OUT', 'a.txt', 'w');
utl_file.put_line(l_file, 'Rosëttenville');
Run Code Online (Sandbox Code Playgroud)

但我把它改成了

l_file := utl_file.fopen_nchar('OUT', 'a.txt', 'w', 32767);
utl_file.put_line_nchar(l_file, 'Rosëttenville');
Run Code Online (Sandbox Code Playgroud)

当我发现扩展的ASCII(代码127以上的字符)未正确写出时.但是第二个unicode版本也没有正确写入扩展字符.而不是Rosëttenville我得到Rosëttenville.有人知道怎么修这个东西吗?

oracle utl-file

0
推荐指数
1
解决办法
1万
查看次数