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

 更新时间:2015年12月22日 10:55:08   作者:jerrylsxu  
这篇文章主要介绍了Oracle数据库执行脚本常用命令小结的相关资料,需要的朋友可以参考下

1. 执行一个SQL脚本文件

复制代码 代码如下:

sqlplus user/pass@servicename<file_name.sql


复制代码 代码如下:

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语句

SQL>/

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

复制代码 代码如下:

SQL> SPOOL file_name

在屏幕上的所有内容都输入到该文件中,包括你输入的sql语句。
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:

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

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;

方法二:采用以下脚本

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;

2、ORACLE数据库的计算机的主机名,ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息

复制代码 代码如下:

SELECT host_name, instance_name, version FROM v$instance;

3、为了知道oracle数据库版本的一些特殊信息

复制代码 代码如下:

select * from v$version;

4、获取控制文件名字

复制代码 代码如下:

select * from v$controlfile;

5、得到Oracle数据库的重做日志配置信息

复制代码 代码如下:

SELECT group#, members, bytes, status, archived FROM v$log;
select GROUP#,MEMBER from v$logfile;

6、获取oracle的每个重做日志(成员)文件所存放的具体位置

复制代码 代码如下:

select * from v$logfile;

7、知道ORACLE数据库的备份和恢复策略和归档文件的具体位置

复制代码 代码如下:

archive log list

8、知道ORACLE数据库中到底有多少表空间以及每个表空间的状态

select tablespace_name, block_size, status, contents, logging from dba_tablespaces;
select tablespace_name, status from dba_tablespaces;

9、知道每个表空间存在哪个磁盘上以及文件的名字等信息

SELECT file_id, file_name, tablespace_name, status, bytes from dba_data_files;
select file_name, tablespace_name from dba_data_files;

10、知道Oracle数据库系统上到底有多少用户和都是什么时候创建的

select username,created from dba_users;
select username, DEFAULT_TABLESPACE from dba_users;

11、从控制文件中取出信息涉及到以下一些相关的命令

select * from v$archived
select * from v$archived_log
select * from v$backup
select * from v$database
select * from v$datafile
select * from v$log
select * from v$logfile
select * from v$loghist
select * from v$tablespace
select * from v$tempfile

12、控制文件由两大部份组成:可重用的部份和不可重用的部分。可重用的部分的大小可用

CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用的部份的内容保留7天,一周之后这部份的内容可能被覆盖。可重用的部份是供恢复管理器来使用的,这部份的内容可以自动扩展。Oracle数据库管理员可以使用CREAT DATABASE或 CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小:

MAXDATAFILES
MAXINSTANCES
MAXLOGFILES
MAXLOGHISTORY
MAXLOGMEMBERS

13、查看控制文件的配置

SELECT type, record_size, records_total, records_used FROM v$controlfile_record_section;

14、如果您的显示被分成了两部分,您需要使用类似于set pagesize 100的SQL*Plus命令先格式化输出。有关的格式化输出命令有以下这些:

record_size: 为每个记录的字节数。
records_total:为该段所分配的记录个数。
records_used:为该段所使用的记录个数。

15、知道控制文件中的所有数据文件(DATAFILE),表空间(TABLESPACE),和重做日志(REDO LOG)所使用的记录情况

SELECT type, record_size, records_total, records_used
FROM v$controlfile_record_section
WHERE type IN ( ‘DATAFILE', ‘TABLESPACE', ‘REDO LOG');

16、获取控制文件名字

select value from v$parameter where name ='control_files';
或者:select * from v$controlfile

17、如何在一个已经安装的Oracle数据库中添加或移动控制文件呢?

以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤:

a、利用数据字典v$controlfile来获取现有控制文件名字。

b、正常关闭Oracle数据库。

c、将新的控制文件名添加到参数文件的CONTROL_FILES参数中。

d、使用操作系统的复制命令将现有控制文件复制到指定位置。

e、重新启动Oracle数据库。

f、利用数据字典v$controlfile来验证新的控制文件名字是否正确。

g、如果有误重做上述操作,如果无误删除无用的旧控制文件。

注: 如果您使用了服务器初始化参数文件(SPFILE),您不能关闭Oracle数据库而且应该在第3步使用alter system set control_files的Oracle命令来改变控制文件的位置。

SQL> alter system set control_files =
‘D:Disk3CONTROL01.CTL',
‘D:Disk6CONTROL02.CTL',
‘D:Disk9CONTROL03.CTL' SCOPE=SPFILE;

18、由于控制文件是一个极其种要的文件,除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外,在数据库的结构变化之后,您应立即对控制文件进行备份。可以用Oracle命令来对控制文件进行备份:

alter database backup controlfile to ‘D:backupcontrol.bak';

19、您也可将备份到一个追踪文件中。该追踪文件包含有重建控制文件所需的SQL语句。可使用以下SQL语句来产生这一追踪文件:

alter database backup controlfile to trace;

20、正常关闭oracle命令

shutdown immeditae

PS:oracle客户端连接的文件配置:

oracle的目录/network/ADMIN/tnsnames.ora

内容:

MIMI(客户端连接的名称) =


(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = NTDB.RUNNER)
)
)

修改表结构

alter table m_gl_gls3_history add (aaaaa varchar2(20),bbbbb varchar2(10))
alter table m_gl_gls3_history modify (aaaaa varchar2(10))
--要改变表中的字段的类型或缩小字段长度,该字段的所有记录值必须为空。
--如果改字段存在记录值,则该字段长度只能扩大,不能缩小。
alter table m_gl_gls3_history drop (aaaaa , bbbbb )

相关文章

  • Oracle 19c数据库卸载重装步骤教程

    Oracle 19c数据库卸载重装步骤教程

    许多的行业已经开始使用分布式数据库的方式来解决数据存储和管理的问题,而Oracle关系型数据库仍拥有数据库领域领先的技术,这篇文章主要给大家介绍了关于Oracle 19c数据库卸载重装步骤的相关资料,需要的朋友可以参考下
    2024-05-05
  • Oracle中大批量删除数据的方法

    Oracle中大批量删除数据的方法

    Oracle中大批量删除数据的方法...
    2007-03-03
  • Linux 7下脚本安装配置oracle 11g r2教程

    Linux 7下脚本安装配置oracle 11g r2教程

    这篇文章主要为大家详细介绍了Linux 7下脚本安装配置oracle 11g r2教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Oracle数据库的备份与恢复

    Oracle数据库的备份与恢复

    Oracle数据库的备份与恢复...
    2007-03-03
  • 基于ORA-12170 TNS 连接超时解决办法详解

    基于ORA-12170 TNS 连接超时解决办法详解

    本篇文章是对ORA-12170 TNS 连接超时的解决办法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Oracle配置数据库防火墙的流程步骤

    Oracle配置数据库防火墙的流程步骤

    数据库防火墙用于监控和控制对数据库的访问,防止未经授权的访问、SQL注入攻击和其他恶意活动,以下是一个详细的指导,展示如何使用开源的数据库防火墙工具,如 GreenSQL,来保护 MySQL 数据库,需要的朋友可以参考下
    2024-09-09
  • Oracle往某表批量插入记录的几种实现方法

    Oracle往某表批量插入记录的几种实现方法

    这篇文章主要给大家介绍了关于Oracle往某表批量插入记录的几种实现方法,Oracle批量插入语句与其他数据库不同,文中通过代码实例介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • 解析一个通过添加本地分区索引提高SQL性能的案例

    解析一个通过添加本地分区索引提高SQL性能的案例

    今天接到同事求助,说有一个select query,在Oracle上要跑一分多钟,他希望能在5s内出结果,以下就是解决这个问题的方法,需要的朋友可以参考下
    2013-07-07
  • Oracle删除archivelog文件的正确方法

    Oracle删除archivelog文件的正确方法

    Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。那么如何定期正确删除archivelog文件呢?今天小编给大家介绍下
    2017-02-02
  • Oracle数据库中ora-12899错误的解决方法

    Oracle数据库中ora-12899错误的解决方法

    大家在使用oracle数据库时,经常会遇到各种各样的问题,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.经过一番倒腾问题顺利解决,下面小编把实现思路分享到脚本之家平台大家可以参考下
    2017-11-11

最新评论