有条件地引用 Oracle APEX 中的复选框值
Posted
技术标签:
【中文标题】有条件地引用 Oracle APEX 中的复选框值【英文标题】:Conditionally Referring to Checkbox Values in Oracle APEX 【发布时间】:2020-09-08 13:14:30 【问题描述】:CASE
WHEN :P6_TASK3_DEP = 'Task 2'
AND :P6_T3_STARTDATE < :P6_T2_DUEDATE
THEN
:P6_T3_STARTDATE = :P6_T2_DUEDATE
WHEN :P6_TASK3_DEP = 'Task 1'
AND :P6_T3_STARTDATE < :P6_T1_DUEDATE
THEN
:P6_T1_DUEDATE
WHEN :P6_TASK3_DEP = 'Task 1'
AND :P6_TASK3_DEP = 'Task 2'
AND :P6_T2_DUEDATE > :P6_T1_DUEDATE
THEN
:P6_T2_DUEDATE
WHEN :P6_TASK3_DEP = 'Task 1'
AND :P6_TASK3_DEP = 'Task 2'
AND :P6_T2_DUEDATE < :P6_T1_DUEDATE
THEN
:P6_T1_DUEDATE
ELSE
'Not Working ' || :P6_T3_STARTDATE
END
我在这里有这个语句试图有条件地引用复选框中的值(任务 1,任务 2)。我每次都使用 else 语句,但似乎无法弄清楚如何正确引用复选框中的值。
【问题讨论】:
会话中每个页面项的值是多少? 【参考方案1】:在不知道会话中页面项目的实际值的情况下,这是猜测,但我会试一试:
CASE
WHEN :P6_TASK3_DEP = 'Task 2'
AND TO_DATE(:P6_T3_STARTDATE,'DD-MON-YYYY') < TO_DATE(:P6_T2_DUEDATE ,'DD-MON-YYYY')
THEN
'boolean_here'
WHEN :P6_TASK3_DEP = 'Task 1'
AND TO_DATE(:P6_T3_STARTDATE,'DD-MON-YYYY') < TO_DATE(:P6_T1_DUEDATE,'DD-MON-YYYY')
THEN
:P6_T1_DUEDATE
WHEN :P6_TASK3_DEP = 'Task 1'
AND :P6_TASK3_DEP = 'Task 2'
AND TO_DATE(:P6_T2_DUEDATE,'DD-MON-YYYY') > TO_DATE(:P6_T1_DUEDATE,'DD-MON-YYYY')
THEN
:P6_T2_DUEDATE
WHEN :P6_TASK3_DEP = 'Task 1'
AND :P6_TASK3_DEP = 'Task 2'
AND TO_DATE(:P6_T2_DUEDATE,'DD-MON-YYYY') < TO_DATE(:P6_T1_DUEDATE,'DD-MON-YYYY')
THEN
:P6_T1_DUEDATE
ELSE
'Not Working ' || :P6_T3_STARTDATE
END
apex 中的所有页面项目都被视为 pl/sql 中的字符串,因此如果您想进行日期比较,您必须告诉数据库您正在比较日期,而不是字符串。您可以通过执行 TO_DATE 来做到这一点。我假设您的日期格式掩码是“DD-MON-YYYY”,但如果不是,您应该将其更改为您自己的日期格式掩码。
第一个THEN
clause 包含@Barbaros Özhan 指出的运算符,因此我将其替换为“boolean_here”。
【讨论】:
【参考方案2】:因为您需要在 CASE..WHEN
语句中使用布尔表达式。
这部分
WHEN :P6_TASK3_DEP = 'Task 2' AND :P6_T3_STARTDATE < :P6_T2_DUEDATE THEN
:P6_T3_STARTDATE = :P6_T2_DUEDATE
违反这条规则的是一个赋值,而不是一个boolean表达式。这可能会转换为
WHEN :P6_TASK3_DEP = 'Task 2' AND :P6_T3_STARTDATE < :P6_T2_DUEDATE THEN
:P6_T2_DUEDATE
改为。
【讨论】:
我们应该看到完整的声明。那是在 SQL 语句中,还是在 PL/SQL 代码块中,它有什么圆周......? @Gamecocks20 。 我的意思是,你最后分配给哪个参数。以上是关于有条件地引用 Oracle APEX 中的复选框值的主要内容,如果未能解决你的问题,请参考以下文章