我试图在存储在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) 我试图从一个过程写入一个文件:
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存储过程编写一个大于7MB的大文件,并且要求在每条记录的末尾没有行终止字符(没有回车符/换行符).
我已经使用UTL_FILE.PUT编写了一个存储过程,并且我正在使用UTL_FILE.FFLUSH跟随每次调用UTL_FILE.PUT.虽然我正在进行FFLUSH调用,但是当我写入超过缓冲区大小(设置为max 32767)的点时,此过程会出现写入错误.如果我用PUT_LINE调用替换PUT调用,该过程可以正常工作.
如果没有换行符,是否无法写入超过缓冲区大小的内容?如果是这样,有解决方法吗?
我需要Oracle /安全专家的帮助.
我将在Oracle DB中创建加密/解密函数.我打算dbms_crypto用AES256.我知道我应该将密钥文件存储在O/S中并使用它来读取它utl_file.
这是一个好主意吗?这种方法有什么问题吗?例如,如果密钥文件被函数的10个调用者同时读取,那么utl_file是否会出现问题?还有其他建议吗?
我确信这是一件非常普遍的事情.有谁知道我在哪里可以找到这样做的好样品?
由于这与安全相关,我更愿意遵循其他人遵循的标准.
我正在研究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) 我需要从我们的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导出缓慢,文件大于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) 需要有关在 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 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实现的缺点.
以上脚本失败的任何想法?
我有一个没有固定结构的平面文件
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
我正在使用写文件
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.有人知道怎么修这个东西吗?
utl-file ×10
oracle ×8
oracle11g ×3
plsql ×3
blob ×1
cryptography ×1
database ×1
export ×1
fflush ×1
informatica ×1
oracle9i ×1
performance ×1
put ×1
security ×1
sql ×1
sql-loader ×1