请教以下两段代码,单独运行通过,在存储过程里一起运行就报错
SQL code
/************************************************************/
/* 删除表 OCN_RESULT_XH的索引 */
/************************************************************/
declare
v_IndexName user_indexes.index_name%type;
v_TableName user_indexes.table_name%type;
v_SQL varchar(2000);
cursor OCN_Cursor is
select Table_Name,
Index_name
from user_indexes
where Table_Name='OCN_RESULT_XH'
and Uniqueness<>'UNIQUE';
Begin
open OCN_Cursor;
if OCN_Cursor%isopen
then
loop
fetch OCN_Cursor into v_TableName,v_IndexName;
exit when OCN_Cursor%notfound;
v_SQL:='drop index '||v_indexName;
execute immediate v_SQL;
end loop;
else
dbms_output.put_line('no Date!');
end if;
close OCN_Cursor;
End;
/************************************************************/
/* 得到TEMP_TFI_Cust_XH表的数据 */
/************************************************************/
insert into TEMP_TFI_Cust_XH(CATV_SID,CUST_SID,CustomerID,Status,DT_CREATE)
select
A.CATV_SID,
A.CUST_SID,
A.CustomerID,
A.Status,
A.DT_CREATE
from edw.TFI_Cust_XH@LINK_DCSERVER A
where trunc(A.DT_CREATE)<Trunc(sysdate);
/*
报错内容:
ORA-06550: 第 32 行, 第 9 列:
PLS-00103: 出现符号 "INSERT"
*/
实在没有分了,对不住大家了
------解决方案-------------------- /************************************************************/
/* 得到TEMP_TFI_Cust_XH表的数据 */
/************************************************************/
insert into TEMP_TFI_Cust_XH(CATV_SID,CUST_SID,CustomerID,Status,DT_CREATE)
select
A.CATV_SID,
A.CUST_SID,
A.CustomerID,
A.Status,
A.DT_CREATE
from edw.TFI_Cust_XH@LINK_DCSERVER A
where trunc(A.DT_CREATE)<Trunc(sysdate);
加在END;的前面试试
------解决方案-------------------- declare
v_IndexName user_indexes.index_name%type;
v_TableName user_indexes.table_name%type;
v_SQL varchar(2000);
cursor OCN_Cursor is
select Table_Name,
Index_name
from user_indexes
where Table_Name='OCN_RESULT_XH'
and Uniqueness<>'UNIQUE';
Begin
Begin
....
End;
/************************************************************/
/* 得到TEMP_TFI_Cust_XH表的数据 */
/************************************************************/
insert into TEMP_TFI_Cust_XH(CATV_SID,CUST_SID,CustomerID,Status,DT_CREATE)
select
A.CATV_SID,
A.CUST_SID,
A.CustomerID,
A.Status,
A.DT_CREATE
from edw.TFI_Cust_XH@LINK_DCSERVER A
where trunc(A.DT_CREATE)<Trunc(sysdate);
End;
在begin 前面 加个 begin
最后 加个 end 试下
------解决方案--------------------存储过程中的代码必须放到begin和end之间啊。
把下面的代码移到end之前: