oracle merge update不支持设置常量?

时间:2016-08-24 07:40:13

标签: sql oracle

MERGE INTO XXD_BORROW_REPAYMENT BR
USING XXD_BORROW B ON (B.BORROWID=BR.BORROWID AND B.type!=13)
WHEN MATCHED THEN
UPDATE SET BR.TOTALTERM=B.TIMELIMIT


MERGE INTO XXD_BORROW_REPAYMENT BR
USING XXD_BORROW B ON (B.BORROWID=BR.BORROWID AND B.type==13)
WHEN MATCHED THEN
UPDATE SET BR.TOTALTERM=1

为什么第一个sql是对的,第二个sql是错误的,oracle merge不支持设置常量?

1 个答案:

答案 0 :(得分:1)

从你的陈述“B.type == 13”,你似乎想要实现B.type与“13”的比较。不幸的是,oracle plsql不支持“==”。您需要使用单个“=”进行任何比较。请看下面的概念证明。

case class Monoid[A](m0: A) // We only care about the zero here
implicit def s[T] : Monoid[Set[T]] = Monoid(Set.empty[T])
implicit def l[T] : Monoid[List[T]] = Monoid(List.empty[T])
def mzero[A]()(implicit m: Monoid[A]) : A = m.m0

val zero = mzero[List[Int]]()
val zero2: List[Int] = mzero()

这个简单的块最终导致错误:“遇到符号” - “当期待......”