小弟刚接触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 where rownum<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 列;