Используя Oracle Pro*C в C/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);
Могу ли я выполнить MERGE, используя EXEC SQL MERGE
, чтобы сначала попробовать обновить (если существуют ename и eno) с обновлением dno, если не существует, то, конечно, вставьте, чтобы выполнить массовое слияние вместо того, чтобы пытаться объединить одну запись за раз, например, сначала сделайте выбор, запись существует, попробуйте обновить, иначе примените вставку. Пожалуйста, помогите с аналогичным примером и синтаксисом для массового слияния, как встроенный SQL в Pro*C.