服务器 频道

Oracle弹性域基础

  【IT168 服务器学院】网站专家Carol Francum最近回答了有关使用Oracle弹性域的一些问题。她解释了如何在一个标准表单中加入一个弹性域,以及改变弹性域大小带来的问题。

  问题:我对弹性域感到有点迷惑。我们能在一个标准表单中加入一个不曾存在的新的描述性弹性域么?

  答案:是的,你可以。尽管如此,如果你在一个标准表单中加入一个弹性域,这个表单就变成自定义的了。

  仅能向一个已注册的表(即Oracle应用程序基础知道的表)加入一个弹性域。可能的情况时:使用已存在的弹性域或者其他功能,你可以做任何你想要的事。你可以参考“Oracle应用程序弹性域指南”获取有关如何设计已存在的弹性域来满足你的需要的帮助。

  问题:在“访问控制系统”(ACS)中某个段已经开始激活使用后,还有可能改变它的大小么?如果能的话,我应该怎么做?有没有什么建议?

  答案:不要这样做。不值得这样做。

  这要靠老天爷了。对于99.999%的用户,答案是完全不可能的。在百万分之一可能的情况下,你可以这样做。你也应该考虑到如果你做的话就可能遇到问题。Oracle对做出那些不被支持的改变而产生的结果是非常认真的。而且,Oracle不支持对已经存在的帐目弹性域结构进行改变。

  “Oracle应用程序弹性域手册”包含了对弹性域的值域进行改变的有关信息(下面给出其摘录)。这是很重要的,如果你要这样做的话下面就是你将遇到的问题的类型。

  第四章“改变某个已经存在的弹性域段的值域”的第一句如下:

  “通常情况下,一旦你设置了一个弹性域并开始使用它,你就永远不要对它的结构或者它的值域进行改变(除了定义、激活和关闭值、速记别名、交叉验证和安全规则)。”

  “尽管如此,如果你的弹性域的值域是右对齐零填充的,那么你就不应该将它的值域变大或者变小,因为001和0000001是不一样的,并且你的所有已存在值将变得无效。如果你的弹性域的值域是右对齐零填充的,Oracle应用程序产品会防止你使你的已存在的弹性域变得无效,通过防止你改变某个已存在的值域的最大值。”

  由于Oracle推荐把帐目弹性域的值域定义成右对齐零填充的,所以很可能你不能增加帐目弹性域值域的大小。

  如果你的弹性域的值域是右对齐零填充的,从而不允许你增加它的大小,你可以考虑在已存在的段的正后面创建一个额外的段。我知道创建一个新段不是件很轻松完成的事,它需要和Oracle技术支持进行紧密合作,但是以前有人这么做过,而且通常比重新实现一遍更划算。

  如果你需要增加段大小纯粹是因为你已经用完了所有可用的数,你考虑过使用字符类型作为代替吗?正常情况下我不推荐这样做,因为它会使将来对范围进行对应更加困难,但是或许你可以容忍这样做。

  看起来像根本不存在自动化的解决方案,并且它涉及更新所有与代码组合有关的段。对预算、分配和合并等而言,有许多与设置有关的表。

  另外,当你做出改变时,你可能对某些东西造成影响,比如说安全规则。当你改变你的段或者假如你改变你的段时,你需要回过头来看看,你可能需要修改你的安全规则。

  如果你有使用GL_code_combinations的自定义软件,它也需要被重新回顾一下看是否需要修改。

0
相关文章