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;
执行的时候提示 展开
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;
执行的时候提示 展开
2个回答
展开全部
在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';】
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询