oracle ORA-00955: 名称已由现有对象使用 , 求大神帮忙啊 本帖最后由 zt735268255 于 2011-06-21 08:45:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你每次都创建临时表ca_emr,oracle不会自动删除临时表,所以报名称已被使用的错误!!oracle的临时表的表不是临时的,跟SQLServer有重大的区别!!数据是临时的会自动随事务或会话结束而清除,并且不同的会话之间是不能看见对方的数据。因此:不要在存储过程中建立临时表,先在外面建立好临时表,然后在存储过程中处理数据就行了。CREATE GLOBAL TEMPORARY TABLE ca_emr( MRID varchar(20), dia_date varchar(30), flag varchar(1) , doctor varchar(5), iccardno varchar(20), MDESCRIPT varchar(4000), MHISDESCRIPT varchar(4000) , CHECKUP varchar(4000) , CHECKASS varchar(4000) , COURSEREC varchar(4000), admiss_times smallint , DIAGNOSECONTENT varchar(60), DIAGNOSERANGE nchar(2) ) on commit PRESERVE rows; ORA-00955: 名称已由现有对象使用也就是告诉你,此临时表的名字已被已经存在的数据库对象所使用,原因是你多次执行此语句,或者数据库里面已经有其他对象使用了此名;数据库对象的命名应该是一个有意义的名字,比如:student,class,emp,dept... Java的一个for循环中执行两句sql时的性能问题 oracle中怎么先排序然后再从排序后的数据中取前几条? 【求高手扫盲】oracle中的role和system privilege erwin建立视图为什么不支持英文字符呢?请高手指教下,非常感谢! 按组织查询用户-----层级关系,按树查询并排序 oracle的安装错误,快速解决! 如何在java中使用得到序列当前的值 update问题 急问一个关于vc与oracle连接的问题 怎样使临时表空间的数据文件自动缩小? oracle 11g怎么配置 oracle ORA-01403: 未找到数据,大神帮帮忙
oracle的临时表的表不是临时的,跟SQLServer有重大的区别!!
数据是临时的会自动随事务或会话结束而清除,并且不同的会话之间是不能看见对方的数据。
因此:
不要在存储过程中建立临时表,先在外面建立好临时表,然后在存储过程中处理数据就行了。CREATE GLOBAL TEMPORARY TABLE ca_emr(
MRID varchar(20),
dia_date varchar(30),
flag varchar(1) ,
doctor varchar(5),
iccardno varchar(20),
MDESCRIPT varchar(4000),
MHISDESCRIPT varchar(4000) ,
CHECKUP varchar(4000) ,
CHECKASS varchar(4000) ,
COURSEREC varchar(4000),
admiss_times smallint ,
DIAGNOSECONTENT varchar(60),
DIAGNOSERANGE nchar(2)
)
on commit PRESERVE rows;
原因是你多次执行此语句,或者数据库里面已经有其他对象使用了此名;
数据库对象的命名应该是一个有意义的名字,
比如:student,class,emp,dept...