我在使用到Dual表的序号问题时碰到这些问题
我建序号的SQL语句为:
SQL> CREATE SEQUENCE s_dept_id
2 INCREMENT BY 1
3 START WITH 51
4 MAXVALUE 9999999
5 NOCACHE
6 NOCYCLE;1.当我执行 SELECT '0000000'||sxh.NEXTVAL INTO strSxh FROM dual; 提示缺少关键字
2.当我执行 SELECT '0000000'||sxh.NEXTVAL strSxh FROM dual;  可是显示出我的序号
3.当我在存储过程里面SELECT '0000000'||sxh.NEXTVAL strSxh FROM dual;时提示我"必须说明标识符sxh.NEXTVAL "我想问一下:我怎么在存储过程里面查询我的序号?然后把得到的值赋给 strSxh ?同时没有提示"必须说明标识符sxh.NEXTVAL "????

解决方案 »

  1.   

    SELECT   '0000000' ¦ ¦s_dept_id.NEXTVAL   INTO   strSxh   FROM   dual;
    sxh这个序号怎么和你上面建立的序号s_dept_id不一致呢
    是你自己手写错了,还是什么意思
      

  2.   

    你上面的错误就是说sxh序号根本不存在
      

  3.   

    SQL>   CREATE   SEQUENCE   s_dept_id 
    2   INCREMENT   BY   1 
    3   START   WITH   51 
    4   MAXVALUE   9999999 
    5   NOCACHE 
    6   NOCYCLE;
    我写错了,是建立
    SQL>   CREATE   SEQUENCE   SXH
    2   INCREMENT   BY   1 
    3   START   WITH   51 
    4   MAXVALUE   9999999 
    5   NOCACHE 
    6   NOCYCLE;
      

  4.   

    我想问一下:我怎么在存储过程里面查询我的序号?然后把得到的值赋给   strSxh   ?同时没有提示"必须说明标识符sxh.NEXTVAL   "????Step 1 :
         CREATE       SEQUENCE       SXH 
           INCREMENT       BY       1   
           START       WITH       51   
           MAXVALUE       9999999   
           NOCACHE   
           NOCYCLE;
    Step 2 :
    在存储过程里面写:
    SELECT   '0000000' ¦ ¦sxh.NEXTVAL   INTO   strSxh   FROM   dual;这样就行了,
    如还不行加我MSN : [email protected]
      

  5.   

    当我在存储过程里面SELECT   '0000000' ¦ ¦sxh.NEXTVAL   strSxh   FROM   dual;时提示我"必须说明标识符sxh.NEXTVAL   "
      

  6.   

    按下述方式写就没有问题了
    create sequence sxh increment by 1
    start with 1
    maxvalue 9999;
    select '0000'||sxh.nextval from dual;create or replace procedure sp_sxh
    as
    a integer;
    begin
     select '0000'||sxh.nextval into a from dual; dbms_output.put_line('sequence is->'||a);
    end;