Oracle Pro * C Bulk Объединение записей в C / C ++ с использованием хост-массивов

Используя 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.

1

Решение

Я смотрю на Pro * C код, который использует команду слияния. Это делает следующее.

 EXEC SQL
EXECUTE
BEGIN
MERGE INTO aTable
USING
...
WHEN MATCHED THEN
UPDATE SET
...
END;
END-EXEC;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]