DECLARE
   year VARCHAR;
   month VARCHAR;
BEGIN
 SELECT TO_CHAR(SYSDATE,'YYYY') INTO year FROM DUAL;
 SELECT TO_CHAR(SYSDATE,'MM') INTO month FROM DUAL;
END;这个写法有什么错误?

解决方案 »

  1.   

    DECLARE
       year CHAR(4);
       month CHAR(2);
    BEGIN
     SELECT TO_CHAR(SYSDATE,'YYYY') INTO year FROM DUAL;
     SELECT TO_CHAR(SYSDATE,'MM') INTO month FROM DUAL;
    END;
    /
      

  2.   

    select to_char(sysdate,'yyyy')  from dual;select to_char(sysdate,'mm')  from dual;
      

  3.   

    year VARCHAR;
       month VARCHAR;  在定义时要设定宽度吧
      

  4.   

    DECLARE
       year VARCHAR(4);
       month VARCHAR(4);
    BEGIN
     SELECT TO_CHAR(SYSDATE,'YYYY') INTO year FROM DUAL;
     SELECT TO_CHAR(SYSDATE,'MM') INTO month FROM DUAL;
    END;
      

  5.   

    SQL> set serveroutpu on
    SQL>  DECLARE
      2      year VARCHAR(4);
      3      month VARCHAR(4);
      4   BEGIN
      5     SELECT TO_CHAR(SYSDATE,'YYYY') INTO year FROM DUAL;
      6     SELECT TO_CHAR(SYSDATE,'MM') INTO month FROM DUAL;
      7     DBMS_OUTPUT.PUT_LINE('YEAR IS :'||year);
      8     DBMS_OUTPUT.PUT_LINE('MONTH IS :'||month);
      9   end;
     10  /
    YEAR IS :2004
    MONTH IS :08PL/SQL 程序順利完成
      

  6.   

    select YEAR(sysdata) , MONTH( sysdate) from DUAL