用于打印月份最后一天的sql过程

用于打印月份最后一天的sql过程,sql,oracle,Sql,Oracle,我正在尝试编写程序来打印月日 没有编译错误,但没有打印任何内容 CREATE OR REPLACE PROCEDURE P2 AS to_d date; BEGIN SELECT REP_DATE INTO to_d FROM cmpss_report_calender WHERE REPID='F2'; IF LAST_DAY(SYSDATE) =LAST_DAY(to_d) THEN dbms_output.put_line('');

我正在尝试编写程序来打印月日

没有编译错误,但没有打印任何内容

CREATE OR REPLACE PROCEDURE P2 AS 
  to_d date;
BEGIN
  SELECT REP_DATE 
    INTO to_d 
    FROM cmpss_report_calender 
   WHERE REPID='F2';

  IF LAST_DAY(SYSDATE) =LAST_DAY(to_d) 
  THEN
    dbms_output.put_line('');
  ELSE 
    dbms_output.put_line(to_d);
  end if;

END P2;
如果您使用的是sql plus,请执行以下操作

SET SERVEROUTPUT ON;

EXEC P2;

尝试在SET SERVEROUTPUT ON命令后保留一个空行。此外,SET SERVEROUTPUT ON是一个SQL Plus命令,因此请确保使用相同的命令。

试试这个

CREATE OR REPLACE PROCEDURE P2 AS 
  to_d date;
BEGIN
  SELECT REP_DATE 
    INTO to_d 
    FROM cmpss_report_calender 
   WHERE REPID='F2';

  IF LAST_DAY(SYSDATE) =LAST_DAY(to_d) 
  THEN
    dbms_output.put_line('');
  ELSE 
    dbms_output.put_line(to_d);
  end if;

END P2;

在执行过程之前将SERVEROUTPUT设置为ON
,在begin
sysdate
之后添加这一行后,它显示无效,并且
为日期格式。无需在此处使用
更新
。@constantlearner
将服务器输出设置为打开
是一个SQL*PLUS命令,而不是PL/SQL命令。编译过程不会运行它。如果你想查看输出,你必须运行它。我想打印下一年的结束日期,我可以更改什么我想30 8 2014我尝试添加个月