oracle执⾏带参数的sql语句_Oracle数据库执⾏脚本常⽤命令
⼩结
1. 执⾏⼀个SQL脚本⽂件
sqlplus user/pass@servicename
SQL>start file_names
SQL>@ file_name
我们可以将多条sql语句保存在⼀个⽂本⽂件中,这样当要执⾏这个⽂件中的所有的sql语句时,⽤上⾯的任⼀命令即可,这类似于dos中的批处理。
@与@@的区别是什么?
@等于start命令,⽤来运⾏⼀个sql脚本⽂件。
@命令调⽤当前⽬录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本⽂件。该命令使⽤是⼀般要指定要执⾏的⽂件的全路径,否则从缺省路径(可⽤SQLPATH变量指定)下读取指定的⽂件 www.111Cn。
@@⽤在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/a
oracle登录命令内容:
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 )

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。