Oracle11g oracle 11g中的字符和IF语句
我试图存储日期,然后在if语句中使用它,但它不起作用 它跳过了if allOracle11g oracle 11g中的字符和IF语句,oracle11g,Oracle11g,我试图存储日期,然后在if语句中使用它,但它不起作用 它跳过了if all select TO_CHAR(sysdate, 'DAY') into v_today from dual ; // save the day to v_today if v_today <> 'SUNDAY' or v_today <> 'SATURDAY'// check for the vlaue of v_today then DBMS_OUTPUT.P
select TO_CHAR(sysdate, 'DAY') into v_today from dual ; // save the day to v_today
if v_today <> 'SUNDAY' or v_today <> 'SATURDAY'// check for the vlaue of v_today
then
DBMS_OUTPUT.PUT_LINE('the office is open') ;
else
DBMS_OUTPUT.PUT_LINE('the office is close of the weekend') ;
end if;
选择将字符(sysdate,'DAY')从dual转换为v_today;//今天就把这一天留给你
如果v_今天是“星期日”或v_今天是“星期六”//检查v_今天的值
然后
DBMS_OUTPUT.PUT_LINE('办公室是开放的');
其他的
DBMS_OUTPUT.PUT_LINE(“周末办公室关门”);
如果结束;
首先,您几乎肯定希望使用格式掩码fmDAY
,而不仅仅是DAY
DAY
始终返回9个字符的字符串(假设会话设置为使用英语)。如果这一天不是星期三,那将是一个充满空间的日子。fmDAY
格式掩码删除空格填充
其次,你的IF条件几乎肯定是不正确的。如果今天的v_
不是NULL
,则If
条件将计算为TRUE
。例如,如果v_today
是SATURDAY
,那么v_today“SUNDAY”
将计算为TRUE。由于TRUE或FALSE
的计算结果为TRUE
,因此IF
条件的计算结果为TRUE
。我想你也想要
IF( v_today IN ('SATURDAY', 'SUNDAY' ))
或
执行此过程
将服务器输出设置为ON
执行P_1
IF( v_today != 'SATURDAY' and v_today != 'SUNDAY' )
CREATE OR REPLACE PROCEDURE P_1
IS
v_today varchar2(20);
BEGIN
SELECT TO_CHAR(SYSDATE,'DAY') INTO v_today FROM DUAL;
if (v_today NOT IN('SATURDAY','SUNDAY')) THEN
DBMS_OUTPUT.PUT_LINE('the office is open') ;
ELSE
DBMS_OUTPUT.PUT_LINE('the office is close of the weekend') ;
END IF;
END;