SQL> declare
  2  cursor  cur1 is
  3  
  4  select   t_id,t_name,t_time from  table1  where   t_name='xiaowang';
  5  begin
  6  for   rcur   in  cur1
  7  loop
  8    insert into  table2(t_name)  values(rcur.t_name);
  9  
 10   end  loop;
 12  end;
 13  /
ORA-06550: 第 5 行, 第 52 列: 
PL/SQL: ORA-00933: SQL 命令未正确结束
ORA-06550: 第 5 行, 第 1 列: 
PL/SQL: SQL Statement ignored
ORA-06550: 第 13 行, 第 1 列: 
PLS-00103: 出现符号 "END"在需要下列之一时:
 begin function package
   pragma procedure subtype type use <an identifier>
   <a double-quoted delimited-identifier> form current cursor
表结构如下 :TABLE1(
T_ID NUMBER,
T_NAME VARCHAR2(10),
T_TIME DATE
)
  
TABLE2(
T_ID NUMBER,
T_NAME VARCHAR2(10),
T_TIME DATE,
T_DEPT VARCHAR2(10),
INDATE DATE
)

解决方案 »

  1.   

    scott@SZTYORA> create table TABLE1(
      2  T_ID NUMBER,
      3  T_NAME VARCHAR2(10),
      4  T_TIME DATE
      5  );表已创建。scott@SZTYORA>
    scott@SZTYORA> create table TABLE2(
      2  T_ID NUMBER,
      3  T_NAME VARCHAR2(10),
      4  T_TIME DATE,
      5  T_DEPT VARCHAR2(10),
      6  INDATE DATE
      7  );表已创建。scott@SZTYORA> declare
      2  cursor cur1 is
      3    select t_id,t_name,t_time from table1 where t_name='xiaowang';
      4  begin
      5    for rcur in cur1
      6    loop
      7      insert into table2(t_name) values(rcur.t_name);
      8    end loop;
      9  end;
     10  /PL/SQL 过程已成功完成。
      

  2.   

    --语法没问题,你是不是复制过来的啊?会不会是含有其他字符
    declare
    cursor cur1 is 
    select t_id,t_name,t_time from table1 where t_name='xiaowang';
    begin
    for rcur in cur1
    loop
    insert into table2(t_name) values(rcur.t_name);  
    end loop;
    end;