我接下来有3张桌子:
我必须使用Fibonacci表中的素数填充FiboPrime表(prime = 1 =>数字是素数,否则数字不是素数。)
我必须使用MERGE语句并尝试:
DECLARE
BEGING
MERGE INTO FiboPrime fp
USING fibonacci f, prime p
ON (f.value=p.value)
WHEN MATCHED THEN
UPDATE SET
fp.value=f.value,
fp.prime=1;
WHEN NOT MATCHED THEN
INSERT VALUES(f.value,0);
END;
我收到了下一个错误:经历了符号" INTO"当期待以下之一时: :=。(@;不是空范围字符。谁能帮我解决?
答案 0 :(得分:4)
DECLARE
BEGING
您不需要关键字DECLARE
,因为您没有任何要申报的内容。
关键字为BEGIN
且 NOT BEGING 。
将USING
子句修改为SELECT
查询。例如:
USING (select t1.col1,t2.col2 from t1,t2)
MERGE
作为SQL。无需使用BEGIN-END
块包装它。答案 1 :(得分:1)
MERGE INTO FiboPrime fp
USING ( select Fibonacci.value f, Prime.value p from Fibonacci, prime ) t
ON (t.f = t.p)
WHEN MATCHED THEN
UPDATE SET
fp.value=t.f,
fp.prime=1
WHEN NOT MATCHED THEN
INSERT VALUES(t.f,0);