如本问题所述,在 Oracle 10g 中无法创建具有大小限制的 OUT 参数。11g 这个情况有改善吗?
这是我的现实问题:
INET6_ATON 和 NTOA 函数的 Oracle PL/SQL 版本?
不客气 :) 但是,我不喜欢这些函数的一件事是没有RETURN CHAR(32)
强制任何基于函数的索引 (FBI) 对整个索引使用 4000 的最大 VARCHAR2 大小(这通常会出错由于索引字段大小限制),除非您将整个内容封装在 SUBSTR 中,强制固定大小。这很难用在典型的 SQL 语句中,因为您现在必须确保每个人不仅在使用函数,而且还使用 SUBSTR 封装,以便正确使用索引。
虚拟列会解决这个问题吗?如中,您为每个 IP 定义虚拟列,例如srcip_iptohex
, srcip_nettohex_start
, srcip_nettohex_end
,然后将 CHAR(32) 限制放在虚拟列上。还是虚拟列甚至支持 PL/SQL 调用?由于虚拟列实际上并没有被存储,因此您仍然需要对这些列进行索引以确保它们有用。