Oracle读写文件bfilename

Oracle读写文件bfilename,第1张

Create directory让我们可以在Oracle数据库中灵活的对文件进行读写 *** 作 极大的提高了Oracle的易用性和可扩展性

语法为:

CREATE [OR REPLACE] DIRECTORY directory AS pathname ;

本案例具体创建如下:

create or replace directory exp_dir as /tmp ;

目录创建以后 就可以把读写权限授予特定用户 具体语法如下:

GRANT READ[ WRITE] ON DIRECTORY directory TO username;

例如:

grant read write on directory exp_dir to eygle;

此时用户eygle就拥有了对该目录的读写权限

让我们看一个简单的测试:

SQL> create or replace directory UTL_FILE_DIR as /opt/oracle/utl_file ;Directory created

SQL> declare

    fhandle utl_file file_type;

  begin

    fhandle := utl_file fopen( UTL_FILE_DIR example txt w );

    utl_file put_line(fhandle eygle test write one );

    utl_file put_line(fhandle eygle test write o );

    utl_file fclose(fhandle);

  end;

  /

PL/SQL procedure successfully pleted

SQL> !

[oracle@jumper ]$ more /opt/oracle/utl_file/example txt eygle test write oneeygle test write o[oracle@jumper ]$

类似的我们可以通过utl_file来读取文件:

SQL> declare

    fhandle   utl_file file_type;

    fp_buffer varchar ( );

  begin

    fhandle := utl_file fopen ( UTL_FILE_DIR example txt R );

    utl_file get_line (fhandle fp_buffer );

    dbms_output put_line(fp_buffer );

    utl_file get_line (fhandle fp_buffer );

    dbms_output put_line(fp_buffer );

    utl_file fclose(fhandle);

  end;

  /

eygle test write one

eygle test write o

PL/SQL procedure successfully pleted

可以查询dba_directories查看所有directory

SQL> select from dba_directories;

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

SYS                            UTL_FILE_DIR                   /opt/oracle/utl_fileSYS

BDUMP_DIR                      /opt/oracle/admin/conner/bdumpSYS                                                         EXP_DIR                        /opt/oracle/utl_file

可以使用drop directory删除这些路径

SQL> drop directory exp_dir;

Directory dropped

SQL> select from dba_directories;

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

SYS                            UTL_FILE_DIR                   /opt/oracle/utl_fileSYS

BDUMP_DIR                      /opt/oracle/admin/conner/bdump

create or replace directory USER_DIR as E:\PLSQL\ \ ;

DECLARE

v_content VARCHAR ( );

v_bfile BFILE;

amount INT;

offset INT := ;

BEGIN

v_bfile := bfilename( USER_DIR test TXT ); 注意这里的 User_dir 对应上面已经创建好啦的目录

amount :=DBMS_LOB getlength(v_bfile);

DBMS_LOB OPEN(v_bfile);

DBMS_LOB READ(v_bfile amount offset v_content);

DBMS_LOB close(v_bfile);

DBMS_OUTPUT PUT_LINE(v_content);

lishixinzhi/Article/program/Oracle/201311/17151

权限允许用户访问属于其它用户的对象或执行程序,

ORACLE系统提供权限:Object 对象级、System 系统级

1系统权限(系统权限是对用户而言):

DBA拥有最高的系统权限:

1,可以创建用户

语法:create user username identified by password;

例如:create user briup identified by briup;

当用户创建成功之后,此用户什么权限都没有,甚至不能登录数据库。

2 赋予权限:

一个用户应该具有的基本权限包含:

CREATE SESSION

CREATE TABLE

CREATE SEQUENCE

CREATE VIEW

CREATE PROCEDURE

如果有多个用户他们都具有相同的权限(create session,create table,create sequence),赋予权限的动作过于麻烦,要给每个用户分别制定这些权限,因此oracle提出角色的概念,可以将权限赋值给角色,然后再将角色赋值给用户。

例如,我们当初在进行 *** 作时写的:

grant resource,connect to briup;

此时resource,connect就是角色。

查询resource,connect 具有哪些权限可以使用:

select privilege,role

from role_sys_privs

where role = 'CONNECT' or role ='RESOURCE';

语法:

grant xxxx to user_name ;

例如:

grant create view to briup;

3回收权限

语法:revoke xxx from user_name;

例如:

revoke create view from briup;

4修改密码:

语法:alter user xxx identified by xxxx;

例如:

alert user briup identified by briup;

5删除用户:

语法:drop user username [cascade];

note: cascade:当用户下有表的时候,必须使用cascade级联删除。

例如: drop user test cascade;

2对象权限(针对对象,类似表对象等):

对象权限:select, update, insert, alter, index, delete, all //all包括所有权限

对象的 拥有者拥有所有的权限。

1给用户赋予 *** 作对象的权限:

GRANT object_priv [(columns)]

ON object

TO {user|role|PUBLIC}

[WITH GRANT OPTION]; //允许分配到权限的用户继续将权限分配给其它用户

例如:

grant select on s_emp to jd1613;

给jd1613用户赋予在s_emp表上进行查询的权利。

grant update(id) on s_emp to jd1613;

给jd1613赋予能够更新s_emp表上id列的权限。

2回收权限:同系统权限。

语法:revoke xxx on obj from user;

note: 通过with grant option赋予额权限也会被回收。

例如:

revoke select , update on s_emp from jd1613;

3创建同义词: 相当于给对象起别名

语法:create[public] synonym sy_name for obje_name;

note:只有dba才有权利创建public的同义词

例如:

create synonym emp for s_emp;

4删除同义词:

语法: drop synonym syn_name;

例如:

drop synonym emp;

5导出数据库

exp,imp不属于sqlplus的命令,所以不是在sqlplus终端执行的。

系统终端:exp userid=briup/briup full=y file=briupdmp

导入:imp userid=briup/briup full=y file=briupdmp;

以上就是关于Oracle读写文件bfilename全部的内容,包括:Oracle读写文件bfilename、如何控制oracle用户的权限、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9801867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存