首頁 資料庫 mysql教程 Oracle utl_file_dir参数详解

Oracle utl_file_dir参数详解

Jun 07, 2016 pm 05:06 PM
oracle資料庫

1 UTL_FILE_DIR参数定义 UTL_FILE_DIR是Oracle中的一个“静态参数”,可以设置一个或多个路径。用于在PL/SQL中进行文件I/O操作(

1 UTL_FILE_DIR参数定义

UTL_FILE_DIR是Oracle中的一个“静态参数”,,可以设置一个或多个路径。用于在PL/SQL中进行文件I/O操作(可以用utl_file包)时指定路径。UTL_FILE_DIR是Oracle中的一个“静态参数”,可以设置一个或多个路径。用于在PL/SQL中进行文件I/O操作(可以用utl_file包)时限定路径,utl_file包只能在指定路径下创建,读取文件。utl_file_dir为空时,则不限定路径。

2 UTL_FILE包简介

在PL/SQL中没有直接的文件I/O接口,一般在调试程序时可以使用Oracle自带的DBMS_OUTPUT包的put_line函数(即向屏幕进行I/O 操作),但是不能对磁盘文件进行I/O操作。文件I/O对于数据库的开发来说显得很重要,比如如果数据库中的一部分数据来自于磁盘文件,那么就需要使用I/O接口把数据导入到数据库中来。

3 实验

3.1 设置utl_file_dir参数

SQL> alter system set utl_file_dir='/u01/app/oracle' scope=spfile;

System altered.

SQL> startup force;                 

SQL> show parameter utl_file

NAME                                 TYPE       VALUE

-------------------------------- ----------- ------------------------------

utl_file_dir                         string      /u01/app/oracle

 

设置多个路径:

SQL> alter system set utl_file_dir='/u01/app/oracle', '/oradata' scope=spfile;

System altered.

SQL> startup force

NAME                                 TYPE      VALUE

-------------------------------- ----------- ------------------------------

utl_file_dir                         string      /u01/app/oracle, /oradata

3.2 utl_file的IO操作

SQL> declare

  fn utl_file.file_type;

begin

  fn := utl_file.fopen('/u01/app/oracle', 'utl_test.txt', 'W');

  utl_file.fclose(fn);

end;

/

PL/SQL procedure successfully completed.

 

不是utl_file_dir所指定的路径时,使用fopen方法时就会报错:

SQL> declare  

  fn utl_file.file_type;

begin

  fn := utl_file.fopen('/u01/app/oracle/admin', 'utl_test.txt', 'W');

  utl_file.fclose(fn);

end;

/

declare

*

ERROR at line 1:

ORA-29280: invalid directory path

ORA-06512: at "SYS.UTL_FILE", line 33

ORA-06512: at "SYS.UTL_FILE", line 436

ORA-06512: at line 4

 

为了避免上面的错误,可以使用路径对象。

SQL> create directory dir_test as '/oradata';

Directory created.

SQL> declare

  fn utl_file.file_type;

begin

  fn := utl_file.fopen('DIR_TEST', 'test.txt', 'W');

  utl_file.fclose(fn);

end;

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

oracle怎麼查看表屬於哪個表空間 oracle怎麼查看表屬於哪個表空間 Jul 06, 2023 pm 01:31 PM

oracle怎麼查看表屬於哪個表空間

如何使用PDO連線到Oracle資料庫 如何使用PDO連線到Oracle資料庫 Jul 28, 2023 pm 12:48 PM

如何使用PDO連線到Oracle資料庫

oracle如何只取一條重複的數據 oracle如何只取一條重複的數據 Jul 06, 2023 am 11:45 AM

oracle如何只取一條重複的數據

實現PHP和Oracle資料庫的資料導入 實現PHP和Oracle資料庫的資料導入 Jul 12, 2023 pm 06:46 PM

實現PHP和Oracle資料庫的資料導入

如何有效率地使用PHP和Oracle資料庫的連線池 如何有效率地使用PHP和Oracle資料庫的連線池 Jul 12, 2023 am 10:07 AM

如何有效率地使用PHP和Oracle資料庫的連線池

oracle如何在預存程序中判斷表是否存在 oracle如何在預存程序中判斷表是否存在 Jul 06, 2023 pm 01:20 PM

oracle如何在預存程序中判斷表是否存在

oracle資料庫需要jdk嗎 oracle資料庫需要jdk嗎 Jun 05, 2023 pm 05:06 PM

oracle資料庫需要jdk嗎

如何使用php擴充PDO連接Oracle資料庫 如何使用php擴充PDO連接Oracle資料庫 Jul 29, 2023 pm 07:21 PM

如何使用php擴充PDO連接Oracle資料庫

See all articles