生成规则:
    1.生成一个三位数
    2.从A-Z,0-9中提取
    3.不允许有重复(前面任意匹配两个字符)
    4.oracle存储过程生成,预留一个入参reserved
因小弟没有接触过oracle,也几乎不跟数据库打交道.所以不知道如何下手.请各位大大帮帮忙吧!

解决方案 »

  1.   

    --前2位大写字母,第三位数字吗?
    select dbms_random.string('u',2)||trunc(dbms_random.value(1,9)) from dual;
    --还是3位是任意大写字母或数字?
    select dbms_random.string('x',3) from dual;
      

  2.   


    LOOP 
      FOR I IN 0..2 LOOP
      END LOOP;
      OPEN curDate
      IF curDate%ISOPEN THEN
        LOOP
          IF  A=B THEN
            CLOSE curDate; 
            EXIT;--跳出比较循环
          END IF;
        END LOOP;
        p_result:='00000';
        EXIT;--跳出大循环
      END IF;
    END LOOP该段代码,我想问的问题是:当跳出比较循环之后,外面的大循环还会不会执行?
      

  3.   


    LOOP 
      FOR I IN 0..2 LOOP
      END LOOP;
      OPEN curDate
      IF curDate%ISOPEN THEN
        LOOP
          IF  A=B THEN
            CLOSE curDate; 
            EXIT;--跳出比较循环
          END IF;
        END LOOP;
        p_result:='00000';
        EXIT;--跳出大循环
      END IF;
    END LOOP;
    --假如A=B成立,就跳出游标循环.外层LOOP循环需要重新执行,
    --请问该段代码能否按着思路走?