配置
启动Oracle
#切换到oracle用户
su - oracle
#进入sqlplus
sqlplus /nolog
#以超级管理员权限登录
conn / as sysdba
#启动数据库实例
startup
#退出
quit
#启动监听
lsnrctl start
参数说明:
#不带任何参数,启动数据库实例并打开数据库,一般选择这种启动方式
startup
#只启动数据库实例,不打开数据库,一般用于创建新的数据库时使用
startup nomount
#启动数据库实例,并加载数据库,但不打开数据库,一般用于修改数据库名称等管理时使用
startup mount
关闭Oracle
#切换到oracle用户
su - oracle
#关闭监听器
lsnrctl stop
#进入sqlplus
sqlplus /nolog
#以超级管理员权限登录
conn /as sysdba
#关闭数据库实例
shutdown immediate
#退出
quit
#shutdown参数说明:
#等待所有的用户断开连接,执行命令后不允许新连接
normal
#等待用户完成当前的语句后,再断开用户连接,不允许新用户连接
immediate
#等待用户完成当前的事务后断开连接,不允许新用户连接
transactional
#强行断开连接并直接关闭数据库
abort
#前面三种方法不会导致数据库出错,最后一种方法非特殊状况不建议使用,
#一般使用shutdown immediate关闭数据库
#备注:如果执行shutdown immediate出现ORA-01012: not logged on错误
#请先执行以下语句
ps -ef|grep ora_dbw0_$orcl
#pid为进程号
kill -9 pid
#注:其中orcl 是数据库的SID
函数
SUBSTR
substr(String str, int a, int b);
string 需要截取的字符串
a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
b 要截取的字符串的长度
#返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',0,3) value from dual;
#返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',1,3) value from dual;
#返回结果:ell,截取从“e”开始3个字符
select substr('HelloWorld',2,3) value from dual;
#返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最#大数量返回。
select substr('HelloWorld',0,100) value from dual;
#返回结果:oWo
select substr('HelloWorld',5,3) value from dual;
#返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
select substr('Hello World',5,3) value from dual;
#返回结果:d (从后面倒数第一位开始往后取1个字符,而不是3个。原因:下面红色 第三个注解)
select substr('HelloWorld',-1,3) value from dual;
#返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个。原因:下面红色 第三个注解)
select substr('HelloWorld',-2,3) value from dual;
#返回结果:rld (从后面倒数第三位开始往后取3个字符)
select substr('HelloWorld',-3,3) value from dual;
#返回结果:orl (从后面倒数第四位开始往后取3个字符)
select substr('HelloWorld',-4,3) value from dual;
substr(String str, int a) ;
string 需要截取的字符串
a 可以理解为从第a个字符开始截取后面所有的字符串。#返回结果:HelloWorld,截取所有字符
select substr('HelloWorld',0) value from dual;
#返回结果:HelloWorld,截取所有字符
select substr('HelloWorld',1) value from dual;
#返回结果:elloWorld,截取从“e”开始之后所有字符
select substr('HelloWorld',2) value from dual;
#返回结果:lloWorld,截取从“l”开始之后所有字符
select substr('HelloWorld',3) value from dual;
#返回结果:d,从最后一个“d”开始 往回截取1个字符
select substr('HelloWorld',-1) value from dual;
#返回结果:ld,从最后一个“d”开始 往回截取2个字符
select substr('HelloWorld',-2) value from dual;
#返回结果:rld,从最后一个“d”开始 往回截取3个字符
select substr('HelloWorld',-3) value from dual;
注:当只有两个参数时;不管是负几,都是从最后一个开始 往回截取
TO_NUMBER
导出
数据泵
expdp username/password@ip:端口/orcl schemas=username directory=DATA_PUMP_DIR dumpfile=文件名.dmp logfile=文件名.log
数据泵条件导出
expdp username/password@ip:端口/orcl directory=DATA_PUMP_DIR dumpfile=文件名.dmp logfile=文件名.log query='"WHERE 语句"'