小编Mar*_* T.的帖子

Oracle 中是否可以使虚拟列不再虚拟?

我们有一个用(可为空的)虚拟列定义的 Oracle 表。出于多种原因,我们决定实际上应提前生成此列并按正常方式填充。是否可以修改该列,使其不再是虚拟的,而无需删除并重新添加它?

以下不起作用:

alter table mytable modify virtualcolumn varchar2(255)
Run Code Online (Sandbox Code Playgroud)

它成功返回,但生成函数仍然存在。我在 Oracle 11g 语法图中没有看到任何有关删除“虚拟”属性的内容,这让我相信这目前是不可能的。

sql oracle

4
推荐指数
1
解决办法
3059
查看次数

创建一个返回多个布尔谓词的逻辑OR的函数

假设我的代码中定义了许多布尔谓词:

def pred1[A](x: A): Boolean = { ... }
def pred2[A](x: A): Boolean = { ... }
def pred3[A](x: A): Boolean = { ... }
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够创建一个函数,例如,逻辑OR的pred1pred3.

所以,像:

def pred1Or3[A](x: A) = or(pred1, pred2)
Run Code Online (Sandbox Code Playgroud)

更好的是,能够推广以便我可以提供自己的组合功能会很好.所以,如果相反,我想要有逻辑AND,我会打电话:

def pred1And3[A](x: A) = combine({_ && _}, pred1, pred2)
Run Code Online (Sandbox Code Playgroud)

我可以用这种方式达到同样的基本效果:

def pred1And3[A](x: A) = Seq(pred1, pred2) map { _(x) } reduce { _ && _ }
Run Code Online (Sandbox Code Playgroud)

但这看起来有点冗长,并且意味着什么.在Scala中有更简单的方法吗?

functional-programming scala

3
推荐指数
1
解决办法
1171
查看次数

标签 统计

functional-programming ×1

oracle ×1

scala ×1

sql ×1