案例条件在 apex 日历和 sql 开发人员中不起作用

Posted

技术标签:

【中文标题】案例条件在 apex 日历和 sql 开发人员中不起作用【英文标题】:Case conditions not working in apex calendar and sql develover 【发布时间】:2018-11-15 16:06:31 【问题描述】:

我创建的条件以防万一不影响顶点日历,因为它们应该适用于我在顶点日历中创建的工作班次。 有人可以帮我解决这种情况吗?

 create or replace PROCEDURE                                    check_task_turnos AS
    BEGIN
    FOR i IN (SELECT ID, calendar_start, calendar_end, estado, TIPO,
    ,CASE
    when to_number(to_char(calendar_start,'DD')) = to_number(to_char(sysdate,'DD'))
    AND to_number(to_char(calendar_start,'HH24')) >= 7 AND to_number(to_char(calendar_end,'HH24')) < 15   
    AND to_number(to_char(sysdate,'HH24')) >= 7    AND to_number(to_char(sysdate,'HH24')) >= 15 
    then 'apex-cal-yellow'
    when to_number(to_char(calendar_start,'DD')) = to_number(to_char(sysdate,'DD'))
    AND to_number(to_char(calendar_start,'HH24')) >= 15 AND to_number(to_char(calendar_end,'HH24')) < 23   
    AND to_number(to_char(sysdate,'HH24')) >= 15    AND to_number(to_char(sysdate,'HH24')) >= 23 
    then 'apex-cal-yellow'
    when to_number(to_char(calendar_start,'DD')) = to_number(to_char(sysdate,'DD'))
    AND to_number(to_char(calendar_start,'HH24')) >= 23 AND to_number(to_char(calendar_end,'HH24')) < 7   
    AND to_number(to_char(sysdate,'HH24')) >= 23    AND to_number(to_char(sysdate,'HH24')) >= 7 
    then 'apex-cal-yellow'
    else null  end
    FROM PASSAGEM
    where estado='Aceite'
    and TIPO='To Do'
    )

          LOOP
        -- registo no LOG , aqui nao registas na PASSAGEM, registas numa tabela ao lado de LOG para teres referencia de quando foi alterada a data da tarefa
                    INSERT INTO PASSAGEM_LOG(passagem_id,
                                            start_date,
                                            end_date   
                                            )
                                    VALUES(i.id ,  
                                            i.calendar_start+( 8/24) ,
                                          i.calendar_end +(8/24));
                 -- update das horas de inico e fim para posicionamento no calendario
                    UPDATE PASSAGEM
                    SET  calendar_start = i.calendar_start+(8/24) --incrementamos 8horas (periodod e um turno
                        ,calendar_end   = i.calendar_end+(8/24) --incrementamos 8horas (periodod e um turno
                    WHERE ID = i.ID;
                                END LOOP;
                               COMMIT;
                              END;

【问题讨论】:

案例条件有效还是无效? 他们不工作的情况下,我该如何解决这个问题 什么是“不工作”?代码无法编译,运行出错,什么都不做,有什么不同吗?无论如何,您如何更改 Apex 日历显示?我没有看到任何代码可以更改您的问题中的任何内容。 这段代码每次运行时都会增加 8 小时的 calendar_star 和 8 小时的 claendar_end 并在 apex 日历中移动块,但只应在轮班结束时如 7 点到 15 点之间执行此操作 你能帮帮我吗? 【参考方案1】:

您应该真正学习如何正确格式化代码;您发布的内容难以阅读和理解。

根据您的问题:此过程使用游标 FOR 循环。又长又丑CASE

没有别名 以后不再在过程代码中使用 如果您打算使用它,请设置其别名(例如my_case),以便您可以将其引用为i.my_case

那么,您为什么希望它在任何地方做任何事情?现在的样子,好像从来没有写过CASE

【讨论】:

如果我把光标放在如何实现案例中实现的条件

以上是关于案例条件在 apex 日历和 sql 开发人员中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Apex - 销售人员 - 使用 apex 保存和检索字段

Oracle Apex SQL 中的条件格式(红色文本)

如何更改 sql developer 中的默认架构?

在 Oracle Apex 中显示服务器端条件取决于页面项值的按钮?

在Oracle Apex中显示按钮时,服务器端条件取决于页面项的值?

如何处理 Oracle APEX 报告中的复选框项目?