在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进行合并,首先尝试更新dno (如果ename和eno存在),如果不存在,则使用insert进行批量合并,而不是一次尝试合并一条记录,例如,先选择记录存在,然后尝试更新,否则应用插入。请帮助提供类似的示例和语法,以便在Pro*C中将批量合并作为嵌入式SQL。
发布于 2017-01-27 04:28:34
我正在查看使用merge命令的pro*c代码。它执行以下操作。
EXEC SQL
EXECUTE
BEGIN
MERGE INTO aTable
USING
...
WHEN MATCHED THEN
UPDATE SET
...
END;
END-EXEC;https://stackoverflow.com/questions/38674293
复制相似问题