/* UTL_FILE 学习
UTL_FILE包 允许用户通过PL/SQL读写操作系统文件
*/
/*
1、创建目录:
*/
create or replace directory MY_DIR as 'E:\javaWP\Ttt';
create or replace directory TO_DIR as 'E:\javaWP\Ott';
查看目录
select * from dba_directories;
--给普通用户testdb 赋予相应权限
grant read,write on directory MY_DIR to testdb;
GRANT EXECUTE ON utl_file TO testdb;
/*
2、文件复制
FCOPY :Copies a contiguous portion of a file to a newly created file
use:
utl_file.fcopy (
location IN VARCHAR2, --需要文件目录
filename IN VARCHAR2, --需要复制的文件名
dest_dir IN VARCHAR2, --目的地目录
dest_file IN VARCHAR2, --复制后的新文件名
start_line IN PLS_INTEGER DEFAULT 1, --复制原文件内容的起始行
end_line IN PLS_INTEGER DEFAULT NULL); --复制原文件内容的末行
*/
--demo
BEGIN
utl_file.fcopy('MY_DIR', 'test1.txt', 'MY_DIR', 'cp_test1.txt',3,6);
END;
/*
3、关闭UTL_FILE 打开的所有文件
FCLOSE_ALL:Close All Files Opened By UTL_FILE
*/
--demo
set serveroutput on size(200);
DECLARE
vInHandle utl_file.file_type;
vOutHandle utl_file.file_type;
BEGIN
vInHandle := utl_file.fopen('MY_DIR', 'test1.txt', 'R');
vOutHandle := utl_file.fopen('MY_DIR', 'test2.txt', 'W');
IF utl_file.is_open(vInHandle) THEN
utl_file.fclose_all;
dbms_output.put_line('Closed All');
END IF;
END fopen;
/
/*
4、查看文件的属性
FGETATTR:Reads and returns the attributes of a disk file
use:
utl_file.fgetattr(
location IN VARCHAR2, --文件所在目录
filename IN VARCHAR2, --文件的名称
exists OUT BOOLEAN, --文件是否存在
file_length OUT NUMBER, --文件的长度(大小)
blocksize OUT NUMBER); --程序块尺寸
*/
--demo
set serveroutput on;
DECLARE
ex BOOLEAN;
flen NUMBER;
bsize NUMBER;
BEGIN
utl_file.fgetattr('MY_DIR', 'test1.txt', ex, flen, bsize);
IF ex THEN
dbms_output.put_line('File Exists');
ELSE
dbms_output.put_line('File Does Not Exist');
END IF;
dbms_output.put_line('File Length: ' || TO_CHAR(flen));
dbms_output.put_line('Block Size: ' || TO_CHAR(bsize));
END fgetattr;
/
--demo 2
DECLARE
ex BOOLEAN;
flen NUMBER;
bsize NUMBER;
BEGIN
utl_file.fgetattr('MY_DIR', 'test3.txt', ex, flen, bsize);
IF flen > 0 THEN
dbms_output.put_line('File Length is ' || flen ||' kb ');
ELSE
dbms_output.put_line('0 File Length is ' || flen ||' kb ');
END IF;
dbms_output.put_line('File Length: ' || TO_CHAR(flen));
dbms_output.put_line('Block Size: ' || TO_CHAR(bsize));
END fgetattr;
/
/*
5、打开文件
FOPEN:Open A File For Read Operations or Open A File For Write Operations
use :
utl_file.fopen(
<file_location IN VARCHAR2>, --文件所在目录
<file_name IN VARCHAR2>, --文件名称
<open_mode IN VARCHAR2>, --文件打开方式
<max_linesize IN BINARY_INTEGER>) --maximum number of characters per line, including the newline character, for this file.
RETURN <file_type_package_data_type; --返回读取文件的内容
*/
--demo read
DECLARE
vInHandle utl_file.file_type;
vNewLine VARCHAR2(250);
BEGIN
vInHandle := utl_file.fopen('MY_DIR', 'test1.txt','R');
LOOP
BEGIN
utl_file.get_line(vInHandle, vNewLine);
dbms_output.put_line(vNewLine);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
utl_file.fclose(vInHandle);
END fopen;
/
--demo write
declare
vInHandle utl_file.file_type;
begin
vInHandle := utl_file.fopen('MY_DIR', 'test1.txt', 'w');
utl_file.put_line(vInHandle, 'hello lsxy');
utl_file.fclose(vInHandle);
end;
/
/*
6.文件删除
FREMOVE:Delete An Operating System File
use:
utl_file.fremove (location IN VARCHAR2, filename IN VARCHAR2);
*/
--demo
BEGIN
utl_file.fremove('MY_DIR', 'test3.txt');
END fremove;
/
/*
7.文件重命名 or 移动文件
FRENAME:Rename An Operating System File
use:
utl_file.frename (
location IN VARCHAR2,
filename IN VARCHAR2,
dest_dir IN VARCHAR2,
dest_file IN VARCHAR2,
overwrite IN BOOLEAN DEFAULT FALSE); --是否覆盖
*/
--demo 文件重命名
BEGIN
utl_file.frename('MY_DIR','test2.txt','MY_DIR','test2.txt',TRUE);
END frename;
/
--demo 移动文件
BEGIN
utl_file.frename('MY_DIR','test2.txt','TO_DIR','test2.txt',TRUE);
END frename;
/
D:\CRMDATA_bak
/*
8、获取文件内容
GET_LINE:Get (read) a line of text from the file
use: get_line(file IN file_type,
buffer OUT VARCHAR2,
len IN BINARY_INTEGER DEFAULT NULL);
*/
--demo
DECLARE
vInHandle utl_file.file_type;
vNewLine VARCHAR2(250);
BEGIN
vInHandle := utl_file.fopen('MY_DIR', 'test1.txt','R');
LOOP
BEGIN
utl_file.get_line(vInHandle, vNewLine);
dbms_output.put_line(vNewLine);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
utl_file.fclose(vInHandle);
END fopen;
/
/*
9、
向文件写入内容
PUT : Put (write) text to file
use :
put(file IN file_type,
buffer IN VARCHAR2);
*/
--demo
declare
vInHandle utl_file.file_type;
begin
vInHandle := utl_file.fopen('MY_DIR', 'test2.txt', 'w');
utl_file.put(vInHandle, 'lsxy');
utl_file.fclose(vInHandle);
end;
/
/*
10、
NEW_LINE:Write line terminators to file
use:
new_line(file IN file_type,
lines IN NATURAL := 1);
*/
--demo
declare
vInHandle utl_file.file_type;
begin
vInHandle := utl_file.fopen('MY_DIR', 'test2.txt', 'w');
utl_file.new_line(vInHandle, 2);
utl_file.fclose(vInHandle);
end;
/
/*
11、
PUT_LINE : Put (write) line to file
*/
--demo
declare
vInHandle utl_file.file_type;
begin
vInHandle := utl_file.fopen('MY_DIR', 'test1.txt', 'w');
utl_file.put_line(vInHandle, 'hello lsxy');
utl_file.fclose(vInHandle);
end;
/
分享到:
相关推荐
Oracle学习]ORACLE的UTL_FILE包简析 包UTL_FIle用于读写操作系统的文件,前提是首先创建Directory对象、授权。然后就可以使用UTL_FILE包中提供的类型、过程、函数来读取
Oracle中的UTL_FILE包是一个非常实用的工具,它允许数据库用户在Oracle服务器上进行文件的读写操作。这个包提供了多种函数和过程,使得在PL/SQL中处理文本文件变得简单。下面我们将深入探讨如何使用UTL_FILE进行文件...
utl_file_and_directory_utilities_for_all_operating_systems 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java Javascript WPS Matlab SPSS ...
matlab导入excel代码utl_quickly_read_xml_file_and_convert_to_sas_wps_dataset 快速读取xml文件并转换为SAS / WPS数据集。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow ...
matlab导入excel代码utl_import_file_with_multiple_record_types 导入具有多种记录类型的文件。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R ...
matlab导入excel代码utl_excel_import_data_from_a_xlsx_file_where_first_2_rows_are_header 从前两行为标头的xlsx文件导入数据。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区...
matlab导入excel代码utl_converting_very_simple_json_file_to_a_sas_dataset 将非常简单的json文件转换为sas数据集关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow统计信息人工...
2. **读取文件**:UTL_FILE.GET_LINE和UTL_FILE.GET_LINES函数用于按行读取文件内容。 3. **写入文件**:UTL_FILE.PUT和PUT_LINE函数向文件写入文本,PUT_LINE同时添加换行符。 4. **关闭文件**:确保每次操作后...
matlab导入excel代码utl_nested_xml_file_to_sas_dataset 将XML文件嵌套到SAS数据集。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java ...
matlab导入excel代码utl_parsing_a_complex_nested_json_file_using_r_lists 使用r列表解析复杂的嵌套json文件。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工...
matlab导入excel代码utl_spectral_density_wav_file 计算WAV声音文件的频谱密度。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java ...
file_handle := UTL_FILE.FOPEN('MY_DIR', p_file_path, 'R'); UTL_FILE.GET_LINE(file_handle, file_content); UTL_FILE.FCLOSE(file_handle); RETURN file_content; END; ``` 这里,'MY_DIR'是已经设置好的...
MATLAB变量转代码utl_import_sas_...机器学习 igraph DOSUBL DOW 循环 stackoverflow SAS 社区. Import sas dataset meta into R data using the free WPS express github (copy/paste using .sas file not readme) ...
JSON图形映射NLP自然语言处理机器学习igraph DOSUBL DOW循环stackoverflow SAS社区。 从Windows资源管理器中选择SAS / WPS数据集并汇总数据 Interactive file explorer window https://tinyurl.com/y9xwd8c9 ...
v_file UTL_FILE.FILE_TYPE; BEGIN FOR r IN (SELECT filename, image_data FROM photos) LOOP v_blob := r.image_data; v_filename := r.filename; v_file := UTL_FILE.FOPEN('MY_DIR', v_filename, 'wb', ...
matlab导入excel代码utl_how_to_stream_stacked_multiple_json_files_into_sas_dataset 如何将堆叠的多个json文件流式传输到sas数据集中。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区...
matlab导入excel代码utl_vectorized_solution_to_finding_first_element_in_a_row_meeting_criterion 查找连续满足条件的第一个元素的矢量化解决方案。 关键字:sas sql join合并大数据分析宏oracle teradata mysql ...
matlab导入excel代码utl_convert_pdf_tables_to_SAS_WPS_datasets 将pdf表转换为SAS WPS数据集。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R ...
首先,Oracle的内置UTL_FILE包允许开发者在PL/SQL中读写文件,包括创建XML文件。不过,生成XML格式的Excel文件通常需要更复杂的过程,因为它涉及到XML结构的设计以及与Excel特定格式的匹配。"UTL_Excel.plb"是一个已...