d_rq date;d_rq=to_date('2008-01-01','YYYY-MM-DD');这样写错误,请问应如何写

解决方案 »

  1.   

    查看下你的NLS_DATE_FORMAT如果是YYYYMMDD的话d_rq date; d_rq=to_date('20080101','nls_date_format中指定的显示格式'); 
      

  2.   

    察看v$nls_parameters如下
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE SIMPLIFIED CHINESE代码修改为d_rq=to_date(‘20080101','DD-MON-RR') 还是报错
      

  3.   

    你吧前面的20080101也改成'DD-MON-RR'这种格式
    比如:select TO_DATE('05-5月-05','DD-MON-RR') from dual;
      

  4.   

    在存储过程中使用d_qsrq=to_date('01-2月-08','DD-MON-RR');
    还是错误
      

  5.   

    d_rq date;d_rq:=to_date('2008-01-01','YYYY-MM-DD');或者
    select to_date('2008-01-01','YYYY-MM-DD') into d_rq from dual;=  相当于  ==
    := 才是   赋值
      

  6.   

    PL/SQL Developer给出的错误如下:Error: PLS-00103: 出现符号 "="在需要下列之一时:
            constant exception
              <an identifier> <a double-quoted delimited-identifier> table
              LONG_ double ref char time timestamp interval date binary
              national character nchar
    Line: 11
    Text: d_qsrq=to_date('01-2月-08','DD-MON-RR');
      

  7.   

    修改为d_qsrq:=to_date('01-2月-08','DD-MON-RR');Error: PLS-00103: 出现符号 "="在需要下列之一时:
            constant exception
              <an identifier> <a double-quoted delimited-identifier> table
              LONG_ double ref char time timestamp interval date binary
              national character nchar
           符号 "<an identifier>" 被替换为 "=" 后继续。
    Line: 11
    Text: d_qsrq:=to_date('01-2月-08','DD-MON-RR');
      

  8.   


    d_rq:=to_date('2008-01-01','YYYY-MM-DD'); 
      

  9.   

    d_rq:=to_date('2008-01-01','YYYY-MM-DD');  
      

  10.   

    declare 
      d DATE;
    begin
      d:=to_date('01-2月-08','DD-MON-RR');
      dbms_output.put_line(d);
    end;
    按照你写的是没问题的,可能是其他地方造成的
      

  11.   

    := 才是   赋值,haha 
      

  12.   

    这是我新建的一个测试过程..LZ看了就明白了.晕倒.还要我亲自写出全过程来./* Formatted on 2008/04/28 17:57 (Formatter Plus v4.8.8) */
    --新建表TAB1
    CREATE TABLE tab1 (d_rq VARCHAR2(30));
    --创建实例过程
    CREATE OR REPLACE PROCEDURE kokuyobj.TEST (st_num IN NUMBER, ed_num IN NUMBER)
    IS
    BEGIN
       DECLARE
          i      NUMBER;
          d_rq   DATE;
       BEGIN
          d_rq := TO_DATE ('2008-01-01', 'YYYY-MM-DD');      FOR i IN st_num .. ed_num
          LOOP
             INSERT INTO tab1
                  VALUES (d_rq);
          END LOOP;
       END;
    END;--最后查看结果
    SELECT * FROM tab1
      

  13.   

    a:=2 才是给a赋值,也可以用select into