请问我的这个写法哪里错了?
  declare
  i number;
  j number;
  k number;
  r char;
  b char;
  l char;
  begin
     for i in 1..2 loop
       for j in 1..5 loop
         for k in 1..26 loop
          r:=to_char(i,'00'); /行
          b:=to_char(k,'00'); /列
          l:=to_char(j,'00'); /层
         insert into LOC_MST(loc,loc_sts,Row_X,Bay_Y,LVL_Z,Plt_Typ,temp_Are)
                values(r||b||l,N,r,b,l,A,L);
         end loop;
       end loop;
      end loop;
   end;

解决方案 »

  1.   

    不是我的那时我在bbs 上后加的注释;
    declare
      i number;
      j number;
      k number;
      r char;
      b char;
      l char;
      begin
         for i in 1..2 loop
           for j in 1..5 loop
             for k in 1..26 loop
              r:=to_char(i,'00'); 
              b:=to_char(k,'00'); 
              l:=to_char(j,'00'); 
             insert into LOC_MST(loc,loc_sts,Row_X,Bay_Y,LVL_Z,Plt_Typ,temp_Are)
                    values(r||b||l,N,r,b,l,A,L);
             end loop;
           end loop;
          end loop;
       end;
      

  2.   

    前面改一下声明参数部分DECLARE
       i   NUMBER;
       j   NUMBER;
       k   NUMBER;
       r   CHAR(10);
       b   CHAR(10);
       l   CHAR(10);
    BEGIN
      

  3.   

    啊,根据你的情况改成/* Formatted on 2005/10/17 11:32 (Formatter Plus v4.8.6) */
    set serveroutput on size 100000;
    DECLARE
       i   NUMBER;
       j   NUMBER;
       k   NUMBER;
       r   CHAR(10);
       b   CHAR(10);
       l   CHAR(10);
    BEGIN
       FOR i IN 1 .. 2
       LOOP
          FOR j IN 1 .. 5
          LOOP
             FOR k IN 1 .. 26
             LOOP
                r := TO_CHAR (i, '00');
                b := TO_CHAR (k, '00');
                l := TO_CHAR (j, '00');             insert into LOC_MST(loc,loc_sts,Row_X,Bay_Y,LVL_Z,Plt_Typ,temp_Are)
                    values(trim(r)||trim(b)||trim(l),N,r,b,l,A,L);
             END LOOP;
          END LOOP;
       END LOOP;
    END;
      

  4.   

    还是报错呀!并且
      总是values(trim(r)||trim(b)||trim(l),N,r,b,l,A,L);报错
      

  5.   

    PL/SQL:ORA-00984:column not allowed here
      

  6.   

    你的N,r,b,l,A,L...这些定义了吗?跟对应的列匹配吗?
      

  7.   

    /* Formatted on 2005/10/17 11:32 (Formatter Plus v4.8.6) */
    set serveroutput on size 100000;
    DECLARE
       i   NUMBER;
       j   NUMBER;
       k   NUMBER;
       r   CHAR(10);
       b   CHAR(10);
       l   CHAR(10);
    BEGIN
       FOR i IN 1 .. 2
       LOOP
          FOR j IN 1 .. 5
          LOOP
             FOR k IN 1 .. 26
             LOOP
                r := TO_CHAR (i, '00');
                b := TO_CHAR (k, '00');
                l := TO_CHAR (j, '00');             insert into LOC_MST(loc,loc_sts,Row_X,Bay_Y,LVL_Z,Plt_Typ,temp_Are)
                    values(trim(r)||trim(b)||trim(l),'N',r,b,l,'A','L');
             END LOOP;
          END LOOP;
       END LOOP;
    END;
      

  8.   

    你的 N,A,L分别是什么啊,如果是字符,改成下面这样试试
    insert into LOC_MST(loc,loc_sts,Row_X,Bay_Y,LVL_Z,Plt_Typ,temp_Are)
                    values(trim(r)||trim(b)||trim(l),'N',r,b,l,'A','L');