ORACLE快速入门随笔修改密码方法:1.SQL;grantconnecttoUSRNAMEidentifiedbyUSRPWD;2.SQL;alteruserUSRNAMEidentifiedbyUSRPWD;3.SQL;passwordUSRNAME;更改USRNMAE的口令旧口令:××××××新口令:××××××重新键入新口令:××××××修改成oracle认证方法:1.修改参数文件中remote_login_passwordfile=EXCLUSIVE或SHARED2.修改/home/network/admin/SQLNET.ORA文件增加sqlnet.authentication_services=(NFS)ORACLE_SID是操作系统级的参数INSTANCE_NAME是数据库级的参数SPFILE是服务器参数文件PFILE是文本参数文件createpfile='/oracle/test.ora'fromspfile;showparameterspfile;后如果VALUE值是零,则没有使用spfile。启动数据库是可以指定是用pfile还是用spfile启动如下:startuppfile='/oracle/test.ora'showparameterinstanceshowparameterdbaltersystemsetjob_queue_processes=50comment='temporatychangeon'scope=memory|spfile|both;altersessionsetCONCAT('Good','String')GoodStringSUBSTR('String',1,3)StrLENGTH('String')6INSTR('String','r')3LPAD(sal,10,'*')******5000unionunionallminus第一个查询减去第二个查询intersect交集SQL;selectreplace('itpuboracle','oracle','training')itpubfromdual/ITPUB--------------itpubtrainingTranslateSQL;selecttranslate('ThisissecondtrianingofitpubinBeijing!','abcde','12345')itpub2fromdual;ITPUB--------------------------------------------Thisiss53on4tri1ningofitpu2inB5ijing!FloorSQL;selectfloor(4.55)fromdual;FLOOR(4.55)-----------4CeilSQL;selectceil(4.55)fromdual;CEIL(4.55)----------5ROUND:4舍5入到指定的小数位ROUND(45.926,2)45.93TRUNC:将值截断到指定的小数位TRUNC(45.926,2)45.92MOD:返回相除后的余数MOD(1600,300)100selecttrunc(sysdate,'D')-3fromdual;trunc(sysdate,'D'),截取到本周的第一天(0:00)trunc(sysdate,'M'),截取到本月的第一天(0:00)trunc(sysdate,'MM'),截取到本月的第一天(0:00)trunc(sysdate,'DD'),截取到本日的0:00trunc(sysdate,'yyyy')得到今年的第一天的0:00.十进制与十六进制EYGLE@vilen;selectto_char(2463,'xxxx')fromdual;TO_CH-----99f已选择1行。十六进制与十进制EYGLE@vilen;selectto_number('99f','xxxx')fromdual;TO_NUMBER('99F','XXXX')-----------------------2463SQL;selectename,sal,2casejobWHEN'MANAGER'THEN1.1*sal3WHEN'ANALYST'THEN1.2*SAL4WHEN'CLERK'THEN1.5*SAL5ELSEsalENDNEW_SAL6fromemp;ENAMESALNEW_SAL------------------------------SMITH8001200ALLEN16001600WARD12501250JONES29753272.5MARTIN12501250BLAKE28503135CLARK24502695SCOTT30003600KING50005000TURNER15001500ADAMS11001650JAMES9501425FORD30003600MILLER13001950SQL;SELECTjob,sal,2DECODE(job,'ANALYST'SAL*1.1,3'CLERK',SAL*1.15,4'MANAGER',SAL*1.20,5SAL)6REVISED_SALARY7FROMemp;JOBSALREVISED_SALARY--------------------------------PRESIDENT50005000MANAGER28503420MANAGER24502940将空值转换为实际的值数据格式可以是日期,字符,数字数据类型必须匹配NVL(comm,0)NVL(hiredate,'01-JAN-97')NVL(job,'NoJobYet')NVL2(expr1,expr2,expr3)如果expr1不为Null,返回expr2,如果expr1为Null,返回expr3。expr1可以为任何数据类型NULLIF(expr1,expr2)比较两个表达式,如果相等返回空值,如果不等返回第一个值。COALESCE(expr1,expr2,...,exprn)返回表达式列表里的第一个非空表达式错误:在启动数据库时出现ORA-01157,ORA-01110或操作系统级错误例如ORA-07360,在关闭数据库(使用shutdownnormal或shutdownimmediate)时将导致错误ORA-01116,ORA-01110以及操作系统级错误ORA-07368解决:以下有两种解决方案:1.用户的表空间可以被轻易地重建即最近导出的对象是可用的或表空间中的对象可以被轻易地重建等.在这种情况下,最简单的方法是offline并删除该数据文件,删除表空间并重建表空间以及所有的对象.svrmgrl;startupmountsvrmgrl;alterdatabasedatafilefilenameofflinedrop;svrmgrl;alterdatabaseopen;svrmgrl;droptablespacetablespace_nameincludingcontents;重建表空间及所有对象.2.用户的表空间不能够被轻易地重建在大多数情况下,重建表空间是不可能及太辛苦的工作.方法是倒备份及做介质恢复.如果您的系统运行在NOARCHIVELOG模式下,则只有丢失的数据在onlineredolog中方可被恢复。步骤如下:1)Restorethelostdatafilefromabackup2)svrmgrl;startupmount3)svrmgrl;selectv1.group#,member,sequence#,first_change#;fromv$logv1,v$logfilev2;wherev1.group#=v2.group#;4)如果数据库运行在NOARCHIVELOG模式下则:svrmgrl;selectfile#,change#fromv$recover_file;如果CHANGE#大于最小的FIRST_CHANGE#则数据文件可以被恢复。如果CHANGE#小于最小的FIRST_CHANGE#则数据文件不可恢复。恢复最近一次的全备份或采用方案一.5)svrmgrl;recoverdatafilefilename;6)确认恢复成功7)svrmgrl;alterdatabaseopenresetlogs;3.只读表空间无需做介质恢复,只要将备份恢复即可.唯一的例外是:表空间在最后一次备份后被改为read-write模式表空间在最后一次备份后被改为read-only模式在这种情况下,均需进行介质恢复二、临时表空间临时表空间并不包含真正的数据,恢复的方法是删除临时表空间并重建即可.三、系统表空间如果备份不可用,则只能采用重建数据库的方法四、回滚表空间有两种情况:1、数据库已经完全关闭(使用shutdownimmediate或shutdown命令)1)确认数据库完全关闭2)修改init.ora文件,注释rollback-segment3)svrmgrl;startuprestrictmount4)svrmgrl;alterdatabasedatafilefilenameofflinedrop;5)svrmgrl;alterdatabaseopen;基于出现的结果:statementprocessed转(7)ORA-00604,ORA-00376,ORA-01110转(6)6)svrmgrl;shutdownimmediate修改init.ora文件,增加如下一行:_corrupted_rollback_segments=(,...)svrmgrl;startuprestrict7)svrmgrl;droptablespacetablespace_nameincludingcontents;重建表空间及回滚段9)svrmgrl;altersystemdisablerestrictedsession;10)修改init.ora文件2、数据库未完全关闭(数据库崩溃或使用shutdownabort命令关闭数据库)1)恢复备份2)svrmgrl;startupmount3)svrmgrl;selectfile#,name,statusfromv$datafile;svrmgrl;alterdatabasedatafilefilenameonline;4)svrmgrl;selectv1.group#,member,sequence#,first_change#;fromv$logv1,v$logfilev2;wherev1.group#=v2.group#;5)svrmgrl;selectfile#,change#fromv$recover_file;见一方案2-46)svrmgrl;recoverdatafilefilename;7)svrmgrl;alterdatabaseopen;3、数据库处于打开状态1)删除回滚段和表空间2)重建表空间和回滚段五、控制文件恢复1.所有的控制文件均被破坏将备份的控制文件拷贝至原目录下对于RAWDEVICE,则:ddif='con.bak'of='/dev/rdrd/drd1'seek=1282.并非所有的控制文件均被破坏用其他的控制文件启动数据库。3.数据文件上所存储的表selecta.segment_namefromdba_extentsa,dba_data_filesbwherea.file_id=b.file_idandb.file_name='文件名全路径'anda.segment_type='TABLE'job不能自动运行checkdbparametersjob_queue_processesifitsetto0thensetitlargerthan0job_queue_processes=1问题描述执行如下语句selectsession_id,object_namefromv$locked_objecta,