oracle提示ORA-00955: 名称已由现有对象使用

DECLAREtypetype_arrayisvarray(10)ofvarchar2(200);isqlvarchar2(2000);dptablevarchar2(1... DECLARE
type type_array is varray(10) of varchar2(200);
isql varchar2(2000);
dptable varchar2(100):='drop table test';
upsql varchar2(2000);
selsql varchar2(100):='SELECT * from test';
var_array type_array:=type_array('金牛星','星卡','长安之星','长安之星II','新长安之星');
BEGIN

isql:='create global temporary table test (IndicatorsNum varchar2(50),FactDataName varchar2(50),SumValue varchar2(50),datatype varchar2(2)';
for i in 1..var_array.count loop --数组的长度用count
isql:=isql||',Item_Name'||i||' varchar2(50)';
end loop;
isql:=isql||') on commit delete rows';

execute immediate isql; --创建临时表 --6行
end;
执行的时候提示
展开
 我来答
地表最帅175
高粉答主

2018-04-11 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:152
采纳率:0%
帮助的人:4.4万
展开全部

在Synonyms(Oracle数据库,PL/SQL Developer 工具)条目下。 查看是否存在同义词

有的话将同义词删除就可以了。

【ORA-00955: 名称已由现有对象使用】 这个错误说的不仅仅是有可能你有存储过程使用了【student2】,还有可能是你有表名叫【student2】或者其他oracle对象叫【student2】。

说明:其实由于你已经使用了【create or repalace procedure】即使有存储过程叫【student2】也会被覆盖掉,你用下面的命令查询一下,有什么对象叫【student2】,删掉它或者换一个存储过程名字。  【SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='STUDENT2';】

micro0369
2015-01-29 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4095万
展开全部
那就是你之前见过这个临时表 test ,或者你这段代码已经执行过至少1次了。

这段代码中没有看到你执行 drop的语句。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式