【问题标题】:Range fill table in form apex oracle表格顶点oracle中的范围填充表
【发布时间】:2020-01-07 11:37:19
【问题描述】:

美好的一天!我有一个填写表格,表格是P1_FIRSTP1_LAST,填完之后我想要。 例如P1_FIRST = L4819222 and P1_LAST = L4819225。 我按创建。 在Test2 表中,创建了记录L4819222, L4819223, L4819224, L4819225。感谢您的帮助

我之前曾寻求帮助,他们帮助了我,但是当极端值已经在表中时,该选项是合适的。在此变体中,极值仅在形式中。 Range Fill Table

【问题讨论】:

  • 如果这些数字始终是连续的,您可以考虑使用标识列,或者如果您的 DB 尚未达到 12c,则使用序列。

标签: sql oracle11g oracle-apex


【解决方案1】:

无论您使用存储在表中的值还是项目值,都没有区别,查询保持不变。实际上,它甚至更简单一点。

既然你已经有了这些物品,那么现在

  • 创建一个按钮
    • 让它提交页面
  • 创建一个在您按下按钮时将运行的进程
  • 进程将执行此操作:

    INSERT INTO test2 (val)
    SELECT    SUBSTR (:P1_FIRST, 1, 1)
          || TO_CHAR (
                (  TO_NUMBER (REGEXP_SUBSTR (:P1_FIRST, '\d+$'))
                 + LEVEL
                 - 1))
             AS val
     FROM dual
     CONNECT BY LEVEL <=
                    TO_NUMBER (
                       REGEXP_SUBSTR (:P1_LAST, '\d+$'))
                 - TO_NUMBER (
                       REGEXP_SUBSTR (:P1_FIRST, '\d+$'))
                 + 1;
    

【讨论】:

  • 感谢帮助,我测试了它,它可以工作,但它没有记录最后一个数字。在 Apex 中测试时,它按您说的执行,但是在生成时,它形成了几个相似的变量。我将它全部附加到页面提交之前/设置值/PL-SQLFunction Body
  • 啊哈;最后一个+ 1 不见了;我现在已经添加了。我不明白你的其余信息(从“几个类似的变量”开始)。
  • 非常感谢。你帮了我很多。我问了很多黄鼠狼,因为我是 Apex 的新手。其余的我已经想通了)
  • 我很明白 "SUBSTR (: P1_FIRST, 1, 1)" 这部分对应于我将生成的行的类型。是否有可能使这部分更加通用???例如,如果我输入 L4819225 它将正常工作,但如果我输入 AL4819225 它将无法正常工作,要正常工作,您需要执行“SUBSTR (: P1_FIRST, 1, 2)”,是否可以自动执行??
  • 正则表达式会有所帮助。请改用regexp_substr(:P1_FIRST, '[[:alpha:]]+')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 2016-02-29
  • 1970-01-01
  • 2022-11-23
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多