Oracle数据库执行脚本常用命令小结


1. 执行一个sql脚本文件

代码如下:

sqlplus user/pass@servicenamesql

代码如下:

sql>start file_names

代码如下:

sql>@ file_name

我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。

@与@@的区别是什么?

@等于start命令,用来运行一个sql脚本文件。

@命令调用当前目录下的,或指定全路径,或可以通过sqlPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用sqlPATH变量指定)下读取指定的文件 www.111Cn.net。

@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从sqlPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。

如:在c:temp目录下有文件start.sql和nest_start.sql,start.sql脚本文件的内容为:

@@nest_start.sql – - 相当于@ c:tempnest_start.sql

则我们在sql*plus中,这样执行:

sql> @ c:tempstart.sql

2. 重新运行上一次运行的sql语句

3. 将显示的内容输出到指定文件

代码如下:

sql> SPOOL file_name

在屏幕上的所有内容都输入到该文件中,包括你输入的sql语句。

通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:

方法一:采用以下格式脚本

sql;">
set colsep ‘|'; –设置|为列分隔符
set trimspool on;
set linesize 120;
set pagesize 2000;
set newpage 1;
set heading off;
set term off;
set num 18;
set Feedback off;
spool 路径+文件名;
select * from tablename;
spool off;

方法二:采用以下脚本

sql;">
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool 路径+文件名
select col1||','||col2||','||col3||','||col4||'..' from tablename;
spool off

附一些基本命令

1、得到数据库名和创建日期

代码如下:

SELECT name,created,log_mode,open_mode FROM v$database;