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不支持设置常量?
答案 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()
这个简单的块最终导致错误:“遇到符号” - “当期待......”