首页 > 代码库 > oracle的常见问题与解决

oracle的常见问题与解决

刚接触oracle,在学习过程中遇到了很多的问题,本文章将会收藏我遇到的问题及如何解决。

错误一:ORA-28009:connection as sys should be as sysdba
解决方法:用户名称:sys,口令:password,主机字符串:orcl as sysdba(我设置的全局数据库名为orcl)

错误二:ORA-28000: the account is locked
解决方法:
(1)conn sys/sys as sysdba; //以DBA的身份登录
(2)alter user scott account unlock;// 然后解锁
(3)conn scott/tiger //弹出一个修改密码的对话框,修改一下密码就可以了
原因:oracle 10 默认scott不能登录
 

错误三:ORA-01861: literal does not match format string

解决方法: alter session set nls_date_format =‘yyyy-mm-dd hh24:mi:ss‘; 修改oracle默认时间格式

原因:oracle 默认时间格式 ‘dd-mm月-yy‘

补充:to_char(sysdate,‘YYYY-MM-DD HH12:MI:SS AM‘)  12小时制
        to_char(sysdate,‘YYYY-MM-DD HH24:MI:SS AM‘)   24小时制
        to_date(‘1986-4-3‘,‘yyyy-mm-dd‘)

错误四:ERROR - ORA-12560: TNS:protocol adapter error
解决方法:监听服务没有起来。在服务中把oracle对应服务打开

错误五:系统管理员密码忘记
解决方法:打开cmd,输入sqlplus /nolog,回车;输入 conn / as sysdba;输入alter user sys identified by 新密码(注意,密码以字母开头) 

修改密码: alter user 用户 identified by values ‘密码‘;

 Oracle分页

第一种:select * from(select a1.*,rownum rn from(select 查询列 from 表 where 条件 order by 列)a1 whererownum<10)where rn>6;

第二种:select 查询列 from 表 where rowid in(select rid from(select rownum rn,rid from(select rowid rid from 表 order by 列) where rownum<10)where rn>6)order by 列;