我需要编写一个带有输入参数的过程,比如groupid和item ids(array) 我需要插入一个包含值(groupid,itemid [0])的表,如(1,11),(1,12),(1,13)等所有项。我有两列的表(groupid,itemid)。请帮我解决这个问题。我正在尝试编写合并但收到错误
创建或替换程序update_product_group_prc
(
in_product_group_key IN INT,
in_product_key_array IN dbms_utility.maxname_array
)
如
indx pls_integer:= in_product_key_array.FIRST;
BEGIN
WHILE(INDX不为空) LOOP
MERGE INTO DIM_PRODUCT_X_GROUP PXG
USING(SELECT IN_PRODUCT_GROUP_KEY ,
IN_PRODUCT_KEY_ARRAY(INDX) IN_PRODUCT_KEY_ARRAY
FROM DUAL) IN_TBL
ON(IN_TBL.IN_PRODUCT_GROUP_KEY=PXG.PRODUCT_GROUP_KEY)
WHEN MATCHED THEN
-- DELETE --need to delete source records which r not here in array.
-- WHERE
WHEN NOT MATCHED THEN
INSERT (PRODUCT_GROUP_KEY,PRODUCT_KEY)
VALUES (IN_TBL.IN_PRODUCT_GROUP_KEY,IN_TBL.IN_PRODUCT_KEY_ARRAY);`
INDX:= IN_PRODUCT_KEY_ARRAY.NEXT(INDX); END LOOP;
END update_product_group_prc;
错误(16,41):PL / SQL:ORA-00936:缺少表达式
答案 0 :(得分:0)
您遇到语法错误。评论“WHEN MATCHED THEN”片段。 http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm#SQLRF55028