Oracle-ORA错误案例

-------------------------------------------------------------------------------
ORA-00902: 无效数据类型
-------------------------------------------------------------------------------
错误案例一
create table test (test/test varchar2(200));

字段名包含“/”

-------------------------------------------------------------------------------
ORA-00911: invalid character
-------------------------------------------------------------------------------
错误案例一
select t.* from test t;

末尾有个分号。
错误案例二
begin 
DROP SEQUENCE SEQ_TEST_BH;
end;

begin end;块不支持drop;

-------------------------------------------------------------------------------
ORA-00917 miss comma 缺少逗号
-------------------------------------------------------------------------------
错误案例一
insert into test values('a'b');


-------------------------------------------------------------------------------
ORA-00918: column ambiguously defined
-------------------------------------------------------------------------------
错误案例一
ORA-00918: column ambiguously defined

Select bh From a ,b

字段没有指定是那个表中的列


-------------------------------------------------------------------------------
ORA-00933: SQL 命令未正确结束
-------------------------------------------------------------------------------
错误案例一
update tjry t set t.sfyc = 1 where  t.cjsj between to_date('2012-07-04','yyyy-MM-dd') and to_date('2012-07-04' || ' 23:59:59' ,'YYYY-MM-DD hh24:mi:ss'))


------------------------------------------------------------------------------
ORA-00936: missing expression 遗漏表达式
------------------------------------------------------------------------------
错误案例一:
insert into A(a,b) values(,'b')


错误案例二:
update test t set t.name = 1 where and 1=1


-------------------------------------------------------------------------------
ORA-00947: Not enough values没有足够的值
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
ORA-01000: maximum open cursors exceeded超出打开游标的最大数
-------------------------------------------------------------------------------
原因分析:Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且使用了这些Statment后,及时关闭。最好是在执行了一次executeQuery、executeUpdate等之后,如果不需要使用结果集(ResultSet)的数据,就马上将Statement或PreparedStatement关闭。

-------------------------------------------------------------------------------
ORA-01810: format code appears twice tips 格式代码出现两次
-------------------------------------------------------------------------------
错误案例一
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
二、另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份

-------------------------------------------------------------------------------
ORA-01940: 无法删除当前已连接的用户
-------------------------------------------------------------------------------
错误案例一

drop user test ; 

从数据库中删除指定的用户。 它不删除数据库里此用户所有的表,视图或其他对象。
drop user test cascade;  

从数据库中删除指定的用户。 并且删除数据库里此用户所有的表,视图或其他对象。

当删除一个用户的时候常常会出现ORA-01940错误
判断原因、有些会话还存在,检查
select username,sid,serial# from v$session where username = 'TEST';

alter system kill session'sid,serial#';

eg: 

alter system kill session'9,4';

drop user test cascade;

还是不行的情况、就重启oracle服务了(肯定可以)

-------------------------------------------------------------------------------
ORA-28000: the account is locked(用户被锁定)
-------------------------------------------------------------------------------
alter user test account unlock;






猜你喜欢

转载自guifan.iteye.com/blog/1576535
今日推荐