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;