2016-07-30 11 views
1

Verwenden von Oracle Pro * C in C/C++, können wir Host-Arrays für die Verwaltung von Masseneinsätze in der EMP-Tabelle gemäß folgenden Beispiel verwenden:Oracle Pro * C Bulk-Merge von Datensätzen in C/C++ unter Verwendung von Host-Arrays

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); 

Kann ich eine MERGE mit EXEC SQL MERGE Art zu versuchen, ein Update zuerst (wenn ename und eno existieren) mit dno immer aktualisiert werden, wenn nicht vorhanden dann natürlich einfügen, um eine Massenzusammenführung statt versuchen, einen Datensatz bei zusammenführen eine Zeit, e, g, tun Sie eine Auswahl zuerst, der Datensatz existiert, versuchen Sie ein Update sonst gelten einfügen. Bitte helfen Sie mit ähnlichen Beispiel und Syntax für Massenzusammenführung als Embedded SQL in Pro * C.

Antwort

1

Ich schaue auf pro * c-Code, der den Befehl merge verwendet. Es macht folgendes.

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