配置
启动Oracle
#切换到oracle用户su - oracle#进入sqlplussqlplus /nolog#以超级管理员权限登录conn / as sysdba#启动数据库实例startup#退出quit#启动监听lsnrctl start参数说明:#不带任何参数,启动数据库实例并打开数据库,一般选择这种启动方式startup#只启动数据库实例,不打开数据库,一般用于创建新的数据库时使用startup nomount#启动数据库实例,并加载数据库,但不打开数据库,一般用于修改数据库名称等管理时使用startup mount
关闭Oracle
#切换到oracle用户su - oracle#关闭监听器lsnrctl stop#进入sqlplussqlplus /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;#返回结果:oWoselect 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 语句"'
