Oracle数据库的日常使用命令

Oracle数据库的日常使用命令
Oracle数据库的日常使用命令

Oracle数据库的日常使用命令

1.基本知识 (2)

2.启动和关闭数据库 (3)

3.控制监听 (3)

4.数据库用户管理 (4)

5.Oracle的权限管理 (4)

6.更改字符集为中文 (5)

7.查询语句 (5)

8.表空间管理 (6)

9.数据文件被误删后的处理 (7)

10.查询当前系统的配置参数 (7)

11.显示当前用户 (8)

12.Oracle排错处理 (8)

13.查看表结构 (8)

14.查看数据库文件 (8)

15.将select查询出的结果保存至一个文件 (9)

16.存储过程 (9)

17.数据库的备份与恢复 (10)

Export 转入程序 (10)

Import 恢复程序 (12)

增量卸出/装入 (14)

18.如何查看各个表空间占用磁盘情况? (15)

19.如何知道数据裤中某个表所在的tablespace? (15)

20.内核参数的应用 (15)

21.如何单独备份一个或多个表? (16)

22.如何单独备份一个或多个用户? (16)

23.如何显示当前连接用户? (16)

24.如何外连接? (16)

25.如何执行脚本SQL文件? (17)

26.如何搜索出前N条记录? (18)

27.为表创建序列 (18)

28.查看本用户下的各种对象的SQL脚本 (18)

29.SQL*Plus系统环境变量有哪些?如何修改? (20)

30.如何在PL/SQL中读写文件? (20)

31.某个数据文件损坏,如何打开数据库? (21)

1. 基本知识

一个表空间只能属于一个数据库

每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)

每个数据库最少有一个表空间(SYSTEM表空间)

建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典

每个数据库最少有两个联机日志组,每组最少一个联机日志文件

一个数据文件只能属于一个表空间

一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中

建立新的表空间需要建立新的数据文件

数据文件被ORACLE格式化为ORACLE块,Oracle9i以前版本中,ORACLE块的大小是在第一次创建数据库时设定的,

并且以后不能改变,要想改变,只能重建数据库

一个段segment只能属于一个表空间,但可以属于多个数据文件

一个区extent只能属于一个数据文件,即区间(extent)不能跨越数据文件

PCTFREE和PCTUSED总和不能大于等于100

单独一个事务不能跨越多个回滚段

索引表不含ROWID值

一个事务即使不被提交,也会被写入到重做日志中。

一个块的最大长度为16KB(有2K、4K、8K、16K)

每个数据库最大文件数(按块大小)

2K块20000个文件

4K块40000个文件

8K块或以上65536个文件

2. 启动和关闭数据库

sqlplus /nolog;

SQL >conn / as sysdba;

SQL >startup

(若启动文件名不是ORACLE缺省的文件名,则启动时应带启动目录与文件名)

SQL>startup pfile=

SQL> shutdown immediate

3. 控制监听

1.启动监听

lsnrctl start

2.停止监听

lsnrctl stop

3.查看监听状态

lsnrctl status

4. 数据库用户管理

1.创建用户

如:

create user imuse203

identified by imuse203

default tablespace IMUSE01

temporary tablespace IMUSE01_TMP

2.修改用户

将imuse203的口令改为hello:

alter user imuse203 identified by hello;

将imuse203的缺省表空间改为IMUSE02:

alter user imuse203 default tablespace IMUSE02;

将imuse203的临时表空间改为IMUSE02_TMP:

alter user imuse203 tempory tablespace IMUSE02_TMP;

3.删除用户

删除用户的命令为:

DROP USER 用户名[CASCADE]

若不使用CASCADE选项,则必须在该用户的所有实体都删除之后,才能删除该用户。使用CASCADE后,则不论用户实体有多大,都一并删除。

5. Oracle的权限管理

1.系统权限

ORACLE7提供了80多种系统权限,每种系统权限允许用户执行特定的数据库操作。

系统权限的授予命令为GRANT,例如把创建任何表视图的权限授予imuse01用户:GRANT create any view TO imuse01;

系统权限的回收命令为REVOKE,例如将create any view 权限从imuse01用户手中收回:REVOKE create any view FROM imuse01;

2.实体权限

每种类型的实体有与之相关的实体权限。

授予实体权限的命令举例(将basetab表上的Select和Insert权限授给imuse01):GRANT select,insert ON basetab TO imuse01;

回收实体权限的命令举例(将basetab表上的Select权限从imuse01手中回收):REVOKE select ON basetab FROM imuse01;

3.管理角色

角色是许多权限和角色的组合。它极大地方便了ORACLE的权限管理。

创建角色,如创建一个名为dept1的角色,口令为hello:

CREATE ROLE ROLEiMUSE01 IDENTIFIED BY hello;

?使用角色,可以通过修改用户的缺省角色来使用角色,或通过授权的方法来将角色授予其它角色或用户。如将imuse01用户的缺省角色修改为RoleTmp:

ALTER USER imuse01 DEFAULT ROLE RoleTmp;

将角色RoleTmp角色授予imuse01:

GRANT RoleTmpTO imuse01;

?使角色生效或失效,DBA可以通过控制角色的生效或失效,来暂时回收用户的一部分权限。如使RoleTmp角色失效:

SET ROLE RoleTmp DISABLE;

?删除角色,这将会影响到拥有该角色的用户和其它角色的权限。用DROP ROLE命令删除角色,如:

DROP ROLE RoleTmp;

6. 更改字符集为中文

sqlplus /nolog;

SQL>conn / as sysdba;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL> ALTER DATABASE OPEN;

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

(这一步一般会出错,所以需要重复执行上面从SHUTDOWN IMMEDIATE开始的所有语句) SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

7. 查询语句

当前存在哪些表空间

Select * from v$tablespace;

表空间有多大

Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

表空间还剩多少空闲空间

Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

查询imuse01用户所使用的缺省表空间

select default_tablespace from dba_users where username=’imuse01’;

查询imuse01用户所使用的临时表空间

select temporary_tablespace from dba_users where username=’imuse01’;

查询当前用户所拥有的角色

select * from session_roles;

查看违反唯一索引的表及列:

如果插入数据时系统提示:unique constraint (IMUSE01.SYS_C004960) violated.则说明在为IMUSE01用户插入数据时违反了唯一索引SYS_C004960。

查看违反唯一索引的表:

select table_name from user_indexes where index_name=’ SYS_C004960’;

查看违反唯一索引的列:

select column_name from user_ind_columns where index_name=’ SYS_C004960’;

查看编译无效的存储过程:

select object_name from user_objects where status=’INV ALID’and object_type=’PROCEDURE’;

查看当前运行的实例名:

select instance_name from v$instance;

8. 表空间管理

1.创建表空间

create tablespace IMUSE01

datafile '/export/home/oracle/oradata/mdspdata/imuse01_dat1'

size 100M;

2.增加表空间的大小

如将表空间IMUSE01增加100M:

alter tablespace IMUSE01

add datafile ‘/export/home/oracle/oradata/mdspdata/imuse01_dat2’

size 100M;

3.修改表空间的大小

如将表空间IMUSE01改为1000M:

alter database

datafile ‘/export/home/oracle/oradata/mdspdata/imuse01_dat1’

resize 1000M;

4.删除表空间

DROP tablespace BPOS01_temp;

5.创建临时表空间

create TEMPORARY TABLESPACE BPOS01_temp

tempfile '/opt/oracle/oradata/orcl/bpos01_dat3'

size 100M;

9. 数据文件被误删后的处理

如果不小心物理上删除了一Oracle的数据文件,比如说,某应用表空间所对应数据文件”adc.dbf”,Oracle读控制文件时,和打开数据库时所面对的参数不一致,Oracle数据库将启动不了,解决这种问题的方法是把该文件对应的表空间先卸下,再删除,以保证控制文件描述和物理上存在文件一致。

以sys用户登录并进入Sql*Plus:

SQL >startup mount

SQL >alter database datafile ‘/directory/abc.dbf’ offline;

SQL >alter database open;

SQL >drop tablespace abc;

10. 查询当前系统的配置参数

有三种查询方法:

1.静态查询:

即直接查询initXXXX.ora文件(XXXX为ORACLE的SID)。因为有很多系统参数使用的是缺省值,并未在该文件中给出,所以该方法不能看到所有参数及其含义。

2.在SQL*PLUS中用命令查询

1)显示所有数据库参数值

SQL>show parameters;

2)显示含有“sort”的参数的值

SQL>show parameter sort;

3.在SQL*PLUS中用SQL语句查询

SQL> select name,type,value from v$parameter where name='db_block_buffers';

11. 显示当前用户

sql>show user;

12. Oracle排错处理

1.错误说明

ORACLE中出现的错误的格式为:错误类型-错误代码:错误信息,例如:

“ORA-1652: unable to extend temp segment by 128 in tablespace TEMP”

一般来说,这种错误信息比较简单,但是可以根据这个信息用oerr命令得到更详细的信息。

2.查看错误详细说明

oerr 是ORACLE提供的一个在服务器端使用的错误信息帮助命令。使用该命令前,必须先用ORACLE用户登录到服务器上,命令格式为:

oerr 错误类型错误代码

返回信息格式为:

错误代码,“通用错误信息”

//*错误原因

//*应采取的动作

如对上面的错误可用如下命令:

oerr ora 1652

3.alert_XXXX.ora(XXXX为ORALE的SID)文件的说明

alert_XXXX.ora是ORACLE中一个十分有用的的文件,该文件在服务器的具体位置由initXXXX.ora中的参数“background_dump_dest"的值决定。该文件中的信息有:数据库每次STARTUP、SHUTDOWN的具体信息;在数据库中进行的各种DML操作;数据库中出现的各种错误的信息等等,内容十分详细,并且有各种信息发生的具体时间。如果遇到问题,可以仔细浏览该文件,根据问题发生的时间来寻找相应的信息。

13. 查看表结构

SQL>desc 表名

14. 查看数据库文件

共有三种数据库文件:控制文件、数据文件、日志文件

1.查看控制文件

select * from v$controlfile;

2.查看数据文件

select status,bytes,name from v$datafile;

3.查看日志文件

select name from v$logfile;

15. 将select查询出的结果保存至一个文件

SQL>spool /result.txt

SQL>select * from basetab;

SQL>spool off

则从basetab查询出的结果都被保存到当前路径下的result.txt文件中16. 存储过程

1.存储过程的写法:

create or replace procedure proc_name

(

ifield1 in number,

sfield2 out varchar

)

as

v_err_code int;

v_err_msg varchar2(2048);

begin

select field2 into sfield2 from tabSp where field1 = ifield1;

DBMS_OUTPUT.PUT_LINE(sfield2);

exception

when others then

begin

v_err_code :=sqlcode;

v_err_msg :=sqlerrm;

DBMS_OUTPUT.PUT_LINE(v_err_code||' '||v_err_msg);

rollback;

end;

end proc_name;

注意:

1)存储过程的输入输出参数以逗号间隔,局部变量部分以分号间隔;

2)存储过程的输入输出参数部分:最后一个参数后没有逗号;

3)存储过程的局部变量部分:最后一个变量后有分号;

4)可把多个存储过程保存到一个文件中,文件名必须用.sql后缀;

5)每个存储过程结束后,要用“/”作为提交;

2.存储过程的创建:

sqlplus 用户名/密码@数据库标识@存储过程文件名

(这里的存储过程文件名可以省略.sql后缀,因为文件后缀缺省是.sql)

3.存储过程的执行

sql>execute 存储过程名字(参数)

注意:

1.如果执行存储过程时提示:必须说明标识符’存储过程名’,则表明该存储过程不存在或编译未成功。可用如下命令重新编译该存储过程:

SQL>alter procedure存储过程名compile;

2.如果执行存储过程时提示:未找到数据在’imuse01.test_adduser’,有可能是在该存储过程中存在类似”select col _name into tmp from table_name where …..”这样的语句,而查询出的结果为空的缘故。

3.如果执行存储过程时提示:SQL缓冲区中无可执行的程序,说明此时缓冲区是空的。如在执行上面找不到相应记录的脚本后会提示该错误。

4.如果执行存储过程时提示:输入被截为1个字符,表明某个”/”之后少一个回车符。5.如果执行存储过程时提示:创建的过程带有编译错误,可能是某个存储过程结束处少一个”/”。

6.如果执行存储过程时提示:缺少表达式,有可能是某个变量没被赋值。

17. 数据库的备份与恢复

ORACLE系统提供的Export/转入(备份)、Import/转出(恢复)应用程序实现备份与恢复功能。

Export是在数据库打开并能使用的情况下备份数据库数据的实用程序。用Export将数据库中的数据写到以二进制形式表示的操作系统文件中(ORACLE),该文件叫卸出文件。用Export可实现应用程序失败时的恢复,例如可把某个表或某些表恢复到执行该Export时的状态。

由于卸出文件的特殊格式,所以只能用Import实用程序将其读入数据库中。

Export 转入程序

ORACLE数据库有两类备份方法,第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归档模式下,且需要极大的外部存储设备,例如磁带机;第二类备份方式为逻辑备份,客户服务中心业务数据库就是采用这种方式,这种方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备。

逻辑备份又分为三种模式。

表模式(T):这种模式可以卸出当前用户数据库模式下的表,甚至是所有的表。具有特权的用户可根据所指定的数据库模式来(限制表)卸出他们所包含的表。缺省情况是卸出属于当前正在进行卸出的用户的所有表。

用户模式(U):这种模式可以卸出当前用户数据库模式下的所有实体(表、数据和索引)。全数据库模式(F):只有具有EXP_FULL_DATABASE角色的用户才可能以这种模式卸出。以这种模式进行卸出的用户,除SYS模式下的内容之外,数据库中所有实体都可以卸出。下面列出给用户赋予EXP_FULL_DATABASE角色的方法。

要选择表、用户或全数据库方式,可相应指定TABLES=tablelist、OWNER=userlist或FULL =y。

1.表模式

EXP imuse01/ imuse01 BUFFER=8192(或64000)

FILE=imuse01.dmp 或(磁带设备/dev/rmt0)

TABLES=imuse01.basetab

(或imuse01.basetab,imuse01.serviceinfo .....)

ROWS=Y

COMPRESS=N

LOG= EXP_IMUSE01 _SERVICEINFO.LOG

参数说明:

2.用户模式

EXP imuse01/ imuse01 OWNER= imuse01 BUFFER=8192(或64000)

FILE= imuse01.dmp 或(磁带设备/dev/rmt0)

ROWS=Y

COMPRESS=N

LOG= EXP_IMUSE01 .LOG

参数说明:

3.全数据库模式

EXP imuse01/ imuse01 BUFFER=8192(或64000)

FILE=EXP_IMUSE01.dmp (或磁带设备/dev/rmt0)

FULL=Y ROWS=Y COMPRESS=N

LOG= EXP_IMUSE01_DB.LOG

对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。

增量备份命令:

EXP ICDMAIN/ICD BUFFER=8192(或64000)

FILE=EXP_ICDMAIN_DB.DMP (或磁带设备/dev/rmt0)

FULL=Y INCTYPE= incremental ROWS=Y COMPRESS=N

LOG=EXP_ICDMAIN_DB.LOG

参数说明:

说明:

关于增量备份必须满足下列条件:

只对数据库备份有效,且第一次需要FULL=Y参数,以后需要

INCTYPE=INCREMENTAL参数。

用户必须有EXP_FULL_DATABASE权限。

Import 恢复程序

Import和Export是两个相配套的实用程序,Export把数据库中的数据卸出到操作系统文件中,而Import实用程序则把Export卸出的数据恢复到数据库中。

按备份方案确定恢复方案,例如:采用表逻辑备份方案,则恢复方案也采用恢复到表的方式(不应恢复到用户)。

要使用Import,必须具有CREATE SESSION特权,以便能注册到ORACLE RDBMS中去。

这一特权属于在数据库创建时所建立的CONNECT角色。

如果卸出文件是由某用户利用EXP_FULL_DATABASE角色创建的全数据库卸出,那么只有具有IMP_FULL_DATABASE角色的用户才能装入这样的文件。

数据库的逻辑恢复分为表、用户、数据库三种模式。

1.表模式

恢复方法为:

IMP imuse01/imuse01 FILE=文件名LOG=LOG文件名

ROWS=Y COMMIT=Y BUFFER=Y IGNORE=Y

TABLES=(表名1,表名2,表名3,表名4,.......)

参数说明:

2.用户模式

如果备份方式为用户模式,采用下列恢复方法:

IMP system/manager FROMUSER=imuse01 TOUSER= imuse01

FILE=文件名LOG=LOG文件名ROWS=Y COMMIT=Y

BUFFER=Y IGNORE=Y

参数说明同上。

3.数据库模式

如果备份方式为数据库模式,采用下列恢复方法:

IMP system/manager FULL=Y

FILE=文件名LOG=LOG文件名ROWS=Y COMMIT=Y

BUFFER=Y IGNORE=Y

字符集转换

对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLA_LANG参数);对于多字节字符集(例如ZHS168CGB),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。

增量卸出/装入

下面介绍利用Export/Import实用程序对ORACLE数据库进行备份、恢复的方法:增量卸出/装入。增量卸出是一种常用的数据备份方法,包括3个子类:

(1) “完全”增量卸出

就是对整个ORACLE数据库进行完全卸出。如:

$ exp system/口令inctype=complete full=y file=today.dmp

(1) “增量型”增量卸出

即从ORACLE数据库中卸出上次卸出操作之后所有数据库的变化信息。如:

$exp system/口令inctype=incremental file=today.dmp

增量型卸出文件的大小,可能只是完全卸出文件大小的1%,具体要看“新信息或更新过的信息”的总量而定。

(2) “累积型”增量卸出

累积型卸出方式只是卸出自上次“完全”卸出之后数据库中变化了的信息。用法如下:

$exp system/口令inctype=cumulative file=today.dmp

DBA可以排定一个备份日程表,用数据卸出的三个不同方式合理高效地完成数据库的备份任务。比如DBA作如下安排:

星期一:完全卸出(F1)

星期二:增量卸出(I1)

星期三:增量卸出(I2)

星期四:累积卸出(C1)

星期五:增量卸出(I3)

星期六:增量卸出(I4)

如果在星期日,数据库遭到意外破坏,DBA可按以下步骤来恢复数据库:

●用命令CREATE DA TABASE重新生成你的数据库结构;

●最近增量装入I4:$imp system/口令inctype=system full=y file=I4

●完全增量装入F1:$imp system/口令inctype=restore full=y file=F1

●累积增量装入C1:$imp system/口令inctype=restore full=y file=C1

●对于由累积装入或完全装入尚未能装入的信息,作增量装入:

$imp system/口令inctype=restore full=y file=I3

$imp system/口令inctype=restore full=y file=I4

注意:

在I1和I2中的信息已包括在C1中了。

18. 如何查看各个表空间占用磁盘情况?

SQL> col tablespace format a20

SQL> select

b.file_id 文件ID号,

b.tablespace_name 表空间名,

b.bytes 字节数,

(b.bytes-sum(nvl(a.bytes,0))) 已使用,

sum(nvl(a.bytes,0)) 剩余空间,

sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比

from dba_free_space a,dba_data_files b

where a.file_id=b.file_id

group by b.tablespace_name,b.file_id,b.bytes

order by b.file_id

19. 如何知道数据裤中某个表所在的tablespace?

select tablespace_name from user_tables where table_name='TEST'; select * from user_tables中有个字段TABLESPACE_NAME,(oracle); select * from dba_segments where …;

20. 内核参数的应用

shmmax

含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。

设置方法:0.5*物理内存

例子:Set shmsys:shminfo_shmmax=10485760

shmmin

含义:共享内存的最小大小。

设置方法:一般都设置成为1。

例子:Set shmsys:shminfo_shmmin=1:

shmmni

含义:系统中共享内存段的最大个数。

例子:Set shmsys:shminfo_shmmni=100

shmseg

含义:每个用户进程可以使用的最多的共享内存段的数目。

例子:Set shmsys:shminfo_shmseg=20:

semmni

含义:系统中semaphore identifierer的最大个数。

设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。

例子:Set semsys:seminfo_semmni=100

semmns

含义:系统中emaphores的最大个数。

设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora 里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes ×2+10×Oracle实例的个数。

例子:Set semsys:seminfo_semmns=200

semmsl:

含义:一个set中semaphore的最大个数。

设置方法:设置成为10+所有Oracle实例的InitSID.ora中最大的Processes 的值。

例子:Set semsys:seminfo_semmsl=-200

21. 如何单独备份一个或多个表?

exp 用户/密码 tables=(表1,…,表2)

22. 如何单独备份一个或多个用户?

exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件

23. 如何显示当前连接用户?

SHOW USER

24. 如何外连接?

Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+); Select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;

25. 如何执行脚本SQL文件?

SQL>@$PATH/filename.sql;

如:/opt/oracle/下建立sql 目录,存放待执行的SQL文件

oracle@linux66:~/sql> ll

total 192

-rw-r--r-- 1 wwz users 580 2009-11-12 09:46 bme_create_seq.sql

-rw-r--r-- 1 wwz users 78027 2009-11-12 09:46 bme_oracle_data.sql

-rw-r--r-- 1 wwz users 26731 2009-11-12 09:46 bme_oracle.sql

-rw-r--r-- 1 wwz users 20466 2009-11-12 09:46 BPOS_create_table.sql

-rw-r--r-- 1 wwz users 1309 2009-11-12 09:46 BPOS_drop_table.sql

-rw-r--r-- 1 wwz users 732 2009-11-12 09:46 createtablespace.sql

-rw-r--r-- 1 wwz users 1543 2009-11-12 09:46 drop_tables.sql

-rw-r--r-- 1 wwz users 132 2009-11-12 09:46 drop_talbe_list.sql

-rw-r--r-- 1 wwz users 1865 2009-11-12 09:46 init_BPOS.sql

-rw-r--r-- 1 wwz users 16312 2009-11-12 09:46 init_dic.sql

-rw-r--r-- 1 wwz users 366 2009-11-12 09:46 init_oracle_list.sql

-rw-r--r-- 1 wwz users 1194 2009-11-12 09:46 init_order.sql

-rw-r--r-- 1 wwz users 6198 2009-11-12 09:46 init_right.sql

-rw-r--r-- 1 wwz users 254 2009-11-12 09:46 oracle_list.sql

以bposuser用户登录,执行SQL文件

oracle@linux66:~/sql> sqlplus bposuser/bposuser

SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 12 13:49:28 2009

Copyright (c) 1982, 2008, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

SQL> @sql/init_oracle_list.sql

26. 如何搜索出前N条记录?

SELECT * FROM empLOYEE WHERE ROWNUM < n ;

27. 为表创建序列

CREATE SEQUENCE EMPSEQ ... ;

SELECT empseq.currval FROM DUAL ;

自动插入序列的数值

INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK', 79 02, SYSDATE, 1200, NULL, 20) ;

28. 查看本用户下的各种对象的SQL脚本

表:

select * from cat;

select * from tab;

select table_name from user_tables;

视图:

select text from user_views where view_name=upper('&view_name'); 索引:

select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;

触发器:

select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;

快照:

select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;

同义词:

select * from syn;

序列:

select * from seq;

数据库链路:

select * from user_db_links;

约束限制:

select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;

本用户读取其他用户对象的权限:

select * from user_tab_privs;

本用户所拥有的系统权限:

select * from user_sys_privs;

用户:

select * from all_users order by user_id;

表空间剩余自由空间情况:

select tablespace_name,sum(bytes) 总字节数,max(bytes),count(*) from dba_free_space group by tablespace_name;

数据字典:

select table_name from dict order by table_name;

锁及资源信息:

select * from v$lock;不包括DDL锁

数据库字符集:

select name,value$ from props$ where name='NLS_CHARACTERSET'; inin.ora参数:

select name,value from v$parameter order by name;

SQL共享池:

select sql_text from v$sqlarea;

数据库:

select * from v$database

控制文件:

select * from V$controlfile;

重做日志文件信息:

select * from V$logfile;

来自控制文件中的日志文件信息:

select * from V$log;

来自控制文件中的数据文件信息:

select * from V$datafile;

NLS参数当前值:

select * from V$nls_parameters;

ORACLE版本信息:

select * from v$version;

描述后台进程:

select * from v$bgprocess;

查看版本信息:

select * from product_component_version;

29. SQL*Plus系统环境变量有哪些?如何修改?

show和set命令是两条用于维护SQL*Plus系统变量的命令

SQL> show all --查看所有68个系统变量值

SQL> show user --显示当前连接用户

SQL> show error --显示错误

SQL> set heading off --禁止输出列标题,默认值为ON

SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"

SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能

SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "

SQL> set linesize 1000 --设置屏幕显示行宽,默认100

SQL> set autocommit ON --设置是否自动提交,默认为OFF

SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页

SQL> set arraysize 1 --默认为15

SQL> set long 1000 --默认为80

30. 如何在PL/SQL中读写文件?

PL/SQL 3.3以上的版本中,UTL_FILE包允许用户通过PL/SQL读写操作系统文件。如下:

declare

file_handle UTL_FILE.FILE_TYPE;

begin

file_handle := UTL_FILE.FOPEN('/tmp', '文件名', 'w');

UTL_FILE.PUTF(file_handle, '写入的信息\n');

oracle常用命令及格式

oracle常用命令及格式 一:关于日志管理的 1.切换日志:sql> alter system switch logfile; 2.切换checkpoints:sql> alter system checkpoint; 3.增加日志组:sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size1m; 4.增加日志成员 sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.改变日志文件名字或路径 sql> alter database rename file 'c:/oracle/oradata/oradb/re do01.log' sql> to 'c:/oracle/oradata/redo01.log'; (此处注意,那个文件路径的输入格式) 6.删除日志文件组:sql> alter database drop logfile group 3;

7.删除日志文件成员 sql> alter database drop logfile member 'c:/oracle/oradata/ redo01.log'; 8.清除日志文件内容 sql> alter database clear [unarchived] logfile 'c:/oracle/l og2a.rdo'; 二、关于表空间管理的 1.创建表空间 sql> create tablespace tablespace_name datafile 'c:\oracle\ oradata\file1.dbf' size100m, sql> 'c:\oracle\oradata\file2.dbf' size100mminimum extent 5 50k [logging/nologging] sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0) sql> [online/offline] [permanent/temporary] [extent_managem ent_clause]

数据库(Oracle)运维工作内容及常用脚本命令

数据库(Oracle)运维工作内容及常用脚本命令2013-08-09 0个评论来源:LHDZ_BJ的专栏 收藏我要投稿数据库(Oracle)运维工作内容及常用脚本命令 1、系统资源状况: --内存及CPU资源 --linux,solaris,aix vmstat 5 --说明: 1)观察空闲内存的数量多少,以及空闲内存量是否稳定,如果不稳定就得想办法来解决,怎么解决还得看具体情况,一般可以通过调整相关内存参数来解决,各种操作系统输出指标、解释及内存调整参数及方法不完全一样; 2)观察CPU资源利用情况,首先,需要观察CPU上运行的任务数,也就是vmstat输出中位于第一列上的指标,如果该指标持续大于CPU核心数,应该引起注意;如果该指标持续大于CPU核心数的两倍,那么应该引起重视;如果持续为CPU 核心数的多倍,系统一般会出现应用可感知的现象,必须立刻想办法解决。当然,在观察该指标的同时,还要结合CPU利用率的指标情况,如:用户使用百分比,系统使用百分比,空闲百分比等指标,如果空闲百分比持续低于20%,应该引起注意;如果持续低于10%,应该引起重视;如果持续为0,系统一般会出现应用可感知的现象,应该立刻想办法解决问题; 3)CPU用户使用百分比和系统使用百分比的比例,也是应该注意的。一般来说,在一个状态正常的系统上,用户使用百分比应该比系统使用百分比大很多,几倍到十几倍甚至更高,如果系统使用百分比持续接近用户使用百分比,甚至大于用户使用百分比,说明系统的状态是不正常的,可能是硬件或者操作系统问题,也可能是应用问题。 --IO状况 --linux,solaris iostat -dx 5 --aix iostat 5 --说明:

Oracle SQLPlus 常用命令及解释

Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

Oracle数据库操作命令

Oracle数据库操作命令 1.登录数据库: SQL Window 与Command Window Sqlplus system/密码@orcl 2.关闭数据库: Sqlplus/as sysdba Shutdown immediate 3.启动数据库: Sqlplus/as sysdba(已登录时可不用再写) Startup 4.查看参数 ①查看数据库:show parameter db_name; ②查看实例:show parameter instance; ③查看实例名:show parameter instance_name; ④查看Oracle数据库中当前用户所拥有的表: select table_name from user_tables; ⑤查看Oracle数据库中当前用户所能访问的表: Select user,table_name from all_tables; ⑥查看Oracle数据库中本用户下所有的列: Select table_name,column_name from user_tab_columns; Oracle表空间: 5.在数据库orcl中,创建表空间的命令: Create tablespace 表空间名datafile ‘C:\表空间名.dbf’ size 20M; 6.为表空间中添加数据文件命令格式: Alter tablespace 表空间名add datafile ‘D:\表空间名.dbf’ size 100M; 7.创建表空间后,在数据字典中获得其相关信息(查看表空间的数据文件): Select tablespace_name,file_name from dba_data_files; 8.创建表空间时,还可指定数据文件自动扩展机制(指定每次增长尺寸为5M) Create tablespace 表空间名datafile ‘C:\表空间名.dbf’ size 20M autoextend on next 5M; 允许物理文件无限制增长存在一定风险,此时可在创建时设定表空间的最大大小(如500M) Create tablespace 表空间名datafile ‘C:\表空间名.dbf’ size 20M autoextend on next 5M maxsize 500M; 9.修改数据库的默认表空间: Alter database default tablespace 表空间名; 查看某用户的缺省表空间: Select username,default_tablespace from dba_users where username=’用户名’; 修改某用户的缺省表空间: Alter user 用户名default tablespace 表空间名; 10.创建数据库用户: Create users 用户名identified by 密码default tablespace 表空间名; 修改用户的密码:

Oracle基本语法

Oracle的历史 ?Oracle 公司( 甲骨文) 创始人: Larry Ellison 32岁,公司提供数据库服务. ?公司成立于1977 年, 83 年公司更名为Oracle ,原名为”软件开发实验室”. ?Oracle 数据库适用于大型企业 ?竞争对手 –微软的SQLServer –IBM 的DB2 ?目前的版本 – 2.0~7.0 , 8.0 , 8i , 9i , 10g Oracle的服务: 我的电脑右键选择管理--服务和应用程序—服务 -----是数据库或例程的系统标识符 ------是Oracle主目录名称 这几个服务之间的关系: 启动顺序:1、OracleTNSListener必须启动 2、OracleServer必须启动 3、OracleDBConsole启动依赖于OracleServer SqlPlus SqlPlus是Oracle任何版本都自带的数据库操作工具,使用它可以完成大部分的数据库操作。 SqlPlus可以“开始→程序→Oracle”启动,也可以命令行启动(互动) 1.命令行启动sqlPlus sqlplus 用户名/密码@orcl

或 sqlplus 用户名@orcl 如果用户是管理员要在sqlplus 用户名/密码@主机字符串as sysdba “/”是用户名和密码分隔符号 “@”是密码和数据库的分隔符号 “orcl”是数据库的名称,在安装时指定 常用命令(互动) connect 切换用户 show user 显示当前用户 set linesize 1000 设置行显示长度 set pagesize 1000 设置分页长度 desc dept 查看表结构 select table_name from user_tables 查询当前用户的表 / 运行上一条SQL语句 clear screen 清除屏幕 edit 编辑 spool d:/a 保存输出结果到某个位置 spool off 保存结束 quit 退出 list 查看最后一条语句 @ 文件名.sql 运行外部文件中的SQL语句

数据库常用命令

oracle常用命令 命令解释 $Ps –ef|grep oracle 查看oracle进程是否启动 $ sqlplus "/as sysdba" 以sysdba角色登陆oracle数据库 SQL>startup 显示当前系统中已登录的人员。 SQL>shutdown immediate 关闭数据库 SQL>select * from v$version; 查看oracle数据库版本 SQL>select name from v$database; 查看数据库SID SQL>truncate table table_name 快速清空一个表 SQL>select * from all_users;查看数据库中所有用户 SQL>alter tablespacename offline;将表空间offline SQL> alter tablespacename online ;将表空间online $oerr ora 2236 查错误 alert_{ORACLE_SID}.log 数据库告警日志文件 *.TRC 数据库跟踪文件 Oracle说明 1、数文件:SPFILE不能直接阅读是二进制文件,需要转为文本 2、oracle数据库后,可以查看数据库状态是否open,如果open会显示open字样 SQL> select status, instance_role from v$instance; 3、PFILE:SQL> connect / as sysdba 从spfile创建pfile:SQL> create pfile from spfile; 从pfile创建spfile:CREA TE SPFILE FROM PFILE='/home/oracle/admin/pfile/init.ora'; 4、names是客户端或应用程序需要连接数据库时必须配置的,使用$tnsping service_aliasname可以测试出tns配置的是否正确 5、要文件listener.ora、Tnsnames.ora、Sqlnet.ora,这三个位置在$ORACLE_HOME/network/admin目录下。 6、库启动时要先启动listener Network配置:监听程序lsnrctl

oracle数据库基本命令

oracle数据库基本命令 oracle安装后 sys:超级管理员(dba),默认密码为:change_on_install system:系统管理员(dbaoper),默认密码为:manager; sys与system的不同在于sys能够create datebase而system则不能。scott:普通用户,默认密码:tiger 1.切换用户:conn 用户名/密码; SQL> conn system/manager; Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as system SQL> conn sys/change_on_install as sysdba; Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYS 注意:sys与其他用户在命令窗口切换时的不同。 2.修改密码:passw username;(普通用户可以修改自己密码,管理员可以修改其他人的密码) 3.显示当前用户。show user; 4.断开数据库同时推出:exit; 文件操作 5.运行sql脚本,start d:\a.sql; 6.编辑指定的sql脚本。Edit d:\a.sql; 7.将屏幕上指定的内容输出到指定文本中去。spool e:\b.sql;执行语句;spool off;

8.显示设置环境变量; 可以用来控制输出的各种格式,如果希望永久保存可以修改glogin.sql脚本。 Linesize(行宽): show linesize;显示行宽 set linesize 90;设置行宽为90个字符。 Pagesize(页面大小): Show pagesize;显示页面大小 Set pagesize 180;设置页面的小。 (做报表时可以用。一页设定几行。)

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

oracle11g常用命令.

第一章:日志管理 1. forcing log switches sql> alter system switch logfile; 2. forcing checkpoints sql> alter system checkpoint; 3. adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo' size 1m; 4. adding online redo log members sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5. changes the name of the online redo logfile sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log' sql> to 'c:/oracle/oradata/redo01.log'; 6. drop online redo log groups sql> alter database drop logfile group 3; 7. drop online redo log members

sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log'; 8.clearing online redo log files sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo'; https://www.360docs.net/doc/bd18527519.html,ing logminer analyzing redo logfiles a. in the init.ora specify utl_file_dir = ' ' b. sql> execute dbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log'; c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log', sql> dbms_logmnr.new; d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log', sql> dbms_logmnr.addfile; e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora '; f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters sql> v$logmnr_logs; g. sql> execute dbms_logmnr.end_logmnr; 第二章:表空间管理 1. create tablespaces sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,

PL_SQL命令的使用大全

SQL*PLUS命令的使用大全[zt] Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format HEA[DING] text JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} LIKE { expr|alias} NEWL[INE] NEW_V[ALUE] variable NOPRI[NT]|PRI[NT] NUL[L] text OLD_V[ALUE] variable ON|OFF WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] 1). 改变缺省的列标题

oracle命令行大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus 语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format

oracle常用命令大全和环境变量路径

Oracle 命令大全 底部为环境变量配置路径。 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将SCOTT帐号解锁(加锁) alter user scott account unlock(lock); 10 以SCOTT的身份连接并且查看所属表 connect scott/tiger select * from tab; 11 查看EMP的表结构及记录内容 desc emp select empno,ename from emp; 12 以OS的身份登看SGA,共享池,CACHE的信息 connect / as sysdba show sga select name,value/1024/1024 from v$sga; show parameter shared_pool_size select value/1024/1024 from v$parameter where name ='shared_pool_size';

show parameter db_cache_size select value/1024/1024 from v$parameter where name ='db_cache_size'; 13 查看所有含有SIZE的信息 show parameter size bitmap_merge_area_size integer 1048576 create_bitmap_area_size integer 8388608 db_16k_cache_size big integer 0 db_2k_cache_size big integer 0 db_32k_cache_size big integer 0 db_4k_cache_size big integer 0 db_8k_cache_size big integer 0 db_block_size integer 4096 db_cache_size big integer 33554432 db_keep_cache_size big integer 0 db_recycle_cache_size big integer 0 NAME TYPE V ALUE ------------------------------------ ----------- ------------- global_context_pool_size string hash_area_size integer 1048576 java_max_sessionspace_size integer 0 java_pool_size big integer 33554432 large_pool_size big integer 8388608 max_dump_file_size string UNLIMITED object_cache_max_size_percent integer 10 object_cache_optimal_size integer 102400 olap_page_pool_size integer 33554432 oracle_trace_collection_size integer 5242880 parallel_execution_message_size integer 2148 NAME TYPE V ALUE ------------------------------------ ----------- ------------- sga_max_size big integer 143727516 shared_pool_reserved_size big integer 2516582 shared_pool_size big integer 50331648 sort_area_retained_size integer 0 sort_area_size integer 524288 workarea_size_policy string AUTO 14 显示SGA的信息 select * from v$sgastat; POOL NAME BYTES

登录oracle数据库时常用的操作命令整理

oracle系统默认的用户和密码是 创建数据库是创建的用户 scott 密码是 tiger sys 密码是 change_on_install system 密码是 manager sysman 密码是 oem_temp 也可以 sqlplus / as sysdba 不用密码登录!! 登录oracle数据库时常用的操作命令整理 1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。 2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i; 3、SQL>connect / as sysdba ;(as sysoper)或 connect internal/oracle AS SYSDBA ;(scott/tiger) conn sys/change_on_install as sysdba; 4、SQL>startup; 启动数据库实例 5、查看当前的所有数据库: select * from v$database; select name from v$database; desc v$databases; 查看数据库结构字段 7、怎样查看哪些用户拥有SYSDBA、SYSOPER权限: SQL>select * from V_$PWFILE_USERS; Show user;查看当前数据库连接用户 8、进入test数据库:database test; 9、查看所有的数据库实例:select * from v$instance; 如:ora9i 10、查看当前库的所有数据表: SQL> select TABLE_NAME from all_tables;

Oracle查询语句基本命令一

oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.360docs.net/doc/bd18527519.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户SQL> conn a/a

Oracle-11g常用的SQL命令

-- 退出SQLPLUS exit; -- 修改system(sys) 账号密码 SQLPLUS /NOLOG CONN /AS SYSDBA ALTER USER SYSTEM IDENTIFIED BY tarring; -- 清除SQLPLUS 屏幕 CLEAR SCREEN; CL SCR; -- 查看数据文件位置 SELECT NAME FROM v$datafile; -- 查看控制文件位置 SELECT NAME FROM v$controlfile; -- 查看日志文件位置 SELECT MEMBER FROM v$logfile; -- 建立表空间 CREATE TABLESPACE ts01 DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db01.dbf'SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 1024M DEFAULT STORAGE(INITIAL 10m NEXT 1M) PERMANENT ONLINE LOGGING; -- 修改表空间 ALTER TABLESPACE ts01 NOLOGGING; -- 表空间增加数据文件 ALTER TABLESPACE ts01 ADD DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db02.dbf'SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; -- 删除表空间 DROP TABLESPACE ts01; -- 删除表空间同时删除数据文件 DROP TABLESPACE ts01 INCLUDING CONTENTS AND DATAFILES; -- 表空间中建表

Oracle数据库的日常使用命令(SAG_考核)

Oracle数据库的日常使用命令 1.基本知识 (2) 2.启动和关闭数据库 (3) 3.控制监听 (3) 4.数据库用户管理 (3) 5.Oracle的权限管理 (4) 6.更改字符集为中文 (5) 7.查询语句 (5) 8.表空间管理 (6) 9.数据文件被误删后的处理 (7) 10.查询当前系统的配置参数 (7) 11.显示当前用户 (8) 12.Oracle排错处理 (8) 13.查看表结构 (8) 14.查看数据库文件 (8) 15.将select查询出的结果保存至一个文件 (9) 16.存储过程 (9) 17.数据库的备份与恢复 (10) Export 转入程序 (10) Import 恢复程序 (12) 增量卸出/装入 (14)

18.如何查看各个表空间占用磁盘情况? (15) 19.如何知道数据裤中某个表所在的tablespace? (15) 20.内核参数的应用 (15) 21.如何单独备份一个或多个表? (16) 22.如何单独备份一个或多个用户? (16) 23.如何显示当前连接用户? (16) 24.如何外连接? (16) 25.如何执行脚本SQL文件? (17) 26.如何搜索出前N条记录? (18) 27.为表创建序列 (18) 28.查看本用户下的各种对象的SQL脚本 (18) 29.SQL*Plus系统环境变量有哪些?如何修改? (20) 30.如何在PL/SQL中读写文件? (20) 31.某个数据文件损坏,如何打开数据库? (21) 1. 基本知识 一个表空间只能属于一个数据库 每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上) 每个数据库最少有一个表空间(SYSTEM表空间) 建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典 每个数据库最少有两个联机日志组,每组最少一个联机日志文件 一个数据文件只能属于一个表空间 一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中 建立新的表空间需要建立新的数据文件

Oracle 数据库 常用命令

SPOOL将屏幕所有的输出输出到指定文件 -- spool 文件路径名; spool g:\mysql.sql; --业务操作 --结束输出 spool off; 执行一个SQL脚本文件 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 --start file_name -- @ file_name start g:\mysql.sql; @ g:\mysql.sql; 对当前的输入进行编辑 edit ed 重新运行上一次运行的sql语句 / 显示一个表的结构 desc table_name ; 清屏 clear screen; 退出 exit; 置当前session是否对修改的数据进行自动提交 --SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n} set autocommit on; 在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 -- SET ECHO {ON|OFF}; set echo on; 是否显示当前sql语句查询或修改的行数 --SET FEED[BACK] {6|n|ON|OFF}

-- 默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数 set feedback 1; 是否显示列标题 --当set heading off 时,在每页的上面不显示列标题,而是以空白行代替 --SET HEA[DING] {ON|OFF} set heading on; 设置一行可以容纳的字符数 -- 如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示 --SET LIN[ESIZE] {80|n} set linesize 100; 设置页与页之间的分隔 -- SET NEWP[AGE] {1|n|NONE} --当set newpage 0 时,会在每页的开头有一个小的黑方框。 --当set newpage n 时,会在页和页之间隔着n个空行。 --当set newpage none 时,会在页和页之间没有任何间隔 set newpage 1; 设置一页有多少行数 --如果设为0,则所有的输出内容为一页并且不显示列标题 --SET PAGES[IZE] {24|n} set pagesize 20; 是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。 --SET SERVEROUT[PUT] {ON|OFF} set serveroutput on; 是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。 --在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,--设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度 --SET TERM[OUT] {ON|OFF} set termout off; 在dos里连接oracle数据库 CONNECT user_name/passwd@l_jiayou

oracle命令大全

1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server 只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.360docs.net/doc/bd18527519.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) VALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) VALUES (2, \'2\'); end;"; 7.查询用户下的所有表 select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户 SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户 SQL> conn a/a 6、查询当前用户下所有对象 SQL> select * from tab; 7、建立第一个表 SQL> create table a(a number); 8、查询表结构 SQL> desc a 9、插入新记录 SQL> insert into a values(1); 10、查询记录 SQL> select * from a;

相关文档
最新文档