案例条件在 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 开发人员中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle Apex 中显示服务器端条件取决于页面项值的按钮?