oracle对系统文件的读写 |
发布时间: 2012/7/13 14:15:28 |
oracle对系统文件的读写操作是怎样的呢?这是很多人都问过的问题,下面就为您详细介绍oracle对系统文件的读写操作,希望对您能够有所帮助。
在SQL*Plus中可以对操作系统中的文本文件进行简单的读写访问。 例如,事先将SQL语句或者PL/SQL块的代码存放在文本文件中,再把文本文件调入缓冲区中,使之执行。 或者把当前缓冲区中的内容保存到一个文件中, 或者把SQL语句、PL/SQL块的执行结果保存到文件中。 oracle对系统文件的读写: 1.读文件涉及的命令包括@、get、start等命令。 @命令的作用是将指定的文本文件的内容读到缓冲区中,并执行它。文本文件可以是本地文件,也可以是远程服务器上的文件。 如果是本地文件,@命令的命令的执行格式为:@文件名 这里的文件名要指定完整的路径,默认的扩展名是.sql,如果脚本文件使用了默认的扩展名,则在@命令中可以省略扩展名。 如果是远程文件,必须将它存放到一个web服务器上,并以HTTP或FTP方式访问。这时@命令的命令的执行格式为(以HTTP为例):@http://web服务器/文件名 使用@命令读取文件时,文件中可以包含多条SQL语句,每条语句以分号结束;或者可以包含一个PL/SQL块。 文件被读入缓冲区中以后,SQL*Plus将按顺序执行文件中的代码,并将执行结果输出到显示器上。 例如,假设在/home/oracle目录下有一个文件,名为a.sql,文件的内容为: SELECT ename FROM emp WHERE empno=7902; SELECT dname FROM dept WHERE deptno=10; 现在希望通过@命令将这个文件读到缓冲区中,命令执行的执行格式如下:SQL> @/home/oracle /a @命令还有一个用法,就是在启动SQL*Plus的同时,将指定的文件读入缓冲区并执行它。 这时@命令和文件名一起作为SQL*Plus的命令行参数,格式如下:sqlplus 用户名/口令 @文件名 注意,这种格式与以前提到的使用网络服务的格式是很相似的, sqlplus 用户名/口令 @文件名 sqlplus 用户名/口令@网络服务名 但是仍然有区别,请注意观察: sqlplus 用户名/口令@网络服务名 由于文件名和网络服务名都表现为字符串,所以单纯从名字上无法区分到底使用了文件名还是网络服务名。 二者的区别在于第一种格式中在用户名/口令之后有一个空格,这时将把后面的参数解释为一个文件,并把这个文件加载到缓冲区中。 在第二种格式中,用户名/口令之后没有空格,这时将后面的参数解释为网络服务名。 get命令的作用与@命令相似,但是它只是把文件加载到缓冲区中,并不直接执行。 get命令的的执行格式为:get 文件名 选项 其中文件名的默认扩展名为.sql,在get命令中可以省略。目前get命令只支持本地的操作系统文件。 本文出自:亿恩科技【www.enkj.com】 |