在C / C ++中使用Oracle Pro * C,我们可以使用主机阵列来管理EMP表中的批量插入,如下例所示:
struct
{
char ename[3][10];
int eno[3];
} emp_rec1;
struct
{
int dno[3];
} emp_rec2;
...
strcpy(emp_rec1.ename[0], "e1");
strcpy(emp_rec1.ename[1], "e2");
strcpy(emp_rec1.ename[2], "e3");
emp_rec1.eno[0] = 1964; emp_rec2.dno[0] = 5;
emp_rec1.eno[1] = 1974; emp_rec2.dno[1] = 5;
emp_rec1.eno[2] = 1985; emp_rec2.dno[2] = 5;
EXEC SQL INSERT INTO emp (ename, eno, dno)
VALUES (:emp_rec1, :emp_rec2);
我可以使用EXEC SQL MERGE
类型来尝试更新(如果ename和eno存在),dno更新,如果不存在,那么当然插入进行批量合并而不是尝试一次合并一条记录,e,g,先做一个选择,记录存在,尝试更新,否则应用插入。
请帮助在Pro * C中将批量合并的类似示例和语法作为嵌入式SQL。
答案 0 :(得分:1)
我正在查看使用merge命令的pro * c代码。它执行以下操作。
EXEC SQL
EXECUTE
BEGIN
MERGE INTO aTable
USING
...
WHEN MATCHED THEN
UPDATE SET
...
END;
END-EXEC;