- 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之前:
- SQL code
/************************************************************/ /* 得到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);