Zum Inhalt springen

Datenbankfunktionen in Jitterbit Design Studio

Datenbankfunktionen bieten Zugriff auf grundlegende Datenbankaktivitäten.

CacheLookup

Deklaration

string CacheLookup(string databaseId, string sql)

Syntax

CacheLookup(<databaseId>, <sql>)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für eine Datenbankquelle im aktuellen Projekt
  • sql: Der SQL-Befehl, der für die Datenbank ausgeführt werden soll

Beschreibung

Diese Funktion ist identisch mit DBLookup, mit dem Unterschied, dass der erste Lookup die Informationen zwischenspeichert und nachfolgende Lookups diesen Cache verwenden, anstatt die Datenbank wiederholt abzufragen. Der Cache ist für die Dauer der Operationskette gültig, in der er aufgerufen wird.

Wenn die in sql angegebene Abfrage keine Zeilen zurückgibt, gibt die Funktion null zurück.

Die globale Jitterbit-Variable $jitterbit.scripting.db.rows_affected wird von dieser Methode nicht gesetzt.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Eine Alternative zum Zwischenspeichern ist die Verwendung der Funktionen Set und Get.

Hinweis

Endpunkte, die mit dieser Funktion erstellt werden, sind in der Endpunkt-Nutzungsberichterstellung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

// Looking up in a database using a SQL string
CacheLookup("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER=1");

CallStoredProcedure

Deklaration

type CallStoredProcedure(string databaseId, string spName, type resultSet[, string inputOutputVariable,...])

Syntax

CallStoredProcedure(<databaseId>, <spName>, <resultSet>[, <inputOutputVariable>,...])

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für eine Datenbankquelle im aktuellen Projekt
  • spName: Die gespeicherte Prozedur, die auf dem Datenbankserver ausgeführt werden soll
  • resultSet: Eine globale Variable zum Speichern des vom Datenbankserver zurückgegebenen Resultsets, falls zutreffend. (Siehe Hinweise unten).

Optionale Parameter

  • inputOutputVariable: Ein Ein- oder Ausgabeparameter, der an die gespeicherte Prozedur übergeben werden soll; diese Parameter werden je nach Signatur der gespeicherten Prozedur hinzugefügt

Beschreibung

Ruft die gespeicherte Prozedur spName mit den Verbindungsinformationen auf, die durch die von databaseId identifizierte Quelle/das Ziel angegeben werden.

Falls zutreffend, ist das zurückgegebene resultSet ein zweidimensionales Array von Zeichenketten. Wenn die gespeicherte Prozedur kein resultSet zurückgibt oder wenn ein ODBC-Treiber verwendet wird, wird dieses Argument ignoriert.

Verwenden Sie für Anwendungsfälle, die nicht von der Funktion CallStoredProcedure abgedeckt werden, stattdessen die Funktion DBExecute.

Hinweis

Bei Microsoft SQL Server-Datenbanken ruft diese Funktion gespeicherte Prozeduren nur im Standard-Datenbankbesitzer (dbo) Schema auf. Um gespeicherte Prozeduren in anderen Schemas aufzurufen, verwenden Sie die Funktion DBExecute.

Vorsicht

Der Parameter resultSet wird derzeit nur von JDBC-Datenbankentreibern unterstützt. Bei Verwendung von ODBC gibt resultSet immer null zurück.

Die verbleibenden optionalen Parameter werden verwendet, um Ein- und Ausgabeargumente an die gespeicherte Prozedur zu übergeben. Die Anzahl der erforderlichen Argumente hängt von der Signatur der gespeicherten Prozedur ab.

Eingabeargumente können ein hartcodierter Wert, der Wert einer Quelle oder der Wert einer Berechnung oder Formel sein. Ausgabeargumente (einschließlich resultSet) werden als Referenz mit "$name" angegeben, wobei "name" der Name der globalen Variablen ist, die den Ausgabewert enthält. Der Rückgabewert und der Typ der Funktion entsprechen dem Rückgabewert und dem Typ der gespeicherten Prozedur.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis

Endpunkte, die mit dieser Funktion erstellt werden, sind in der Endpunkt-Nutzungsberichterstellung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

Beispiel 1: Aufrufen einer gespeicherten Prozedur ohne Resultset

// Calls a stored procedure "MyStoredProcedure",
// which takes one input variable, one output variable,
// and ignores the result set.
// "Input" is the name of the source global variable
// that provides the input and
// "output" is the name of the global variable
// used to store the output:

CallStoredProcedure("<TAG>Sources/myDBTarget</TAG>",
  "MyStoredProcedure", 0, Input, $output);

// The value of the output parameter can be accessed
// by using either $output or Get("output")

Beispiel 2: Aufrufen einer gespeicherten Prozedur mit einem Resultset

// Calls a stored procedure "GetValues",
// which takes two input variables and returns a result set.
// The result set is returned as the two-dimensional array $result.
// The result can be accessed by using either $result or Get("result"):

CallStoredProcedure("<TAG>Sources/myDBTarget</TAG>", "GetValues", $result, Input1, Input2);

Beispiel 3: Aufrufen einer gespeicherten Prozedur, die auf einen Oracle-Objekttyp zugreift

Verwendung von Oracle-Objekt- und Datensatztypen

Jitterbit unterstützt Oracle-Objekttypen für die Arbeit mit Oracle-Datenbanken bei Verwendung des Oracle-JDBC-Treibers. Oracle-Objekttypen ähneln Oracle-Datensatztypen, die in Jitterbit nicht unterstützt werden, da Oracle diese nicht unterstützt.

Warnung

Um Oracle-Objekttypen zu verwenden, müssen Sie den Oracle-JDBC-Treiber verwenden. Der Oracle-ODBC-Treiber unterstützt weder Oracle-Objekttypen noch Oracle-Datensatztypen.

Um mit dem Oracle-JDBC-Treiber auf Oracle-Datensatztypen zuzugreifen, können Sie eine „Wrapper"-gespeicherte Prozedur in Ihrer Oracle-Datenbank erstellen, die auf einen Oracle-Datensatztyp zugreifen und diesen konvertieren kann. Verwenden Sie dann die Funktion CallStoredProcedure in Jitterbit, um die Wrapper-Prozedur aufzurufen und die Konvertierung zu und von einem Oracle-Objekttyp durchzuführen.

Tipp

Weitere Informationen zu den Unterschieden zwischen Oracle-Datensatztypen und Oracle-Objekttypen finden Sie in der Oracle-Dokumentation. Weitere Informationen finden Sie unter Record Variable Declaration und Using PL/SQL With Object Types in der Oracle-Datenbankdokumentation Version 18.

Das folgende Beispiel beschreibt, wie Sie Oracle-Objekte auf vereinfachte Weise in einer Funktion CallStoredProcedure verwenden können.

Oracle-Typdefinitionen

Eine Oracle-Objekttypdefinition folgt diesem Muster:

Oracle-Objekttyp (unterstützt)
CREATE OR REPLACE TYPE example_customer_details AS OBJECT
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);

Eine Oracle-Datensatztypdefinition folgt diesem Muster:

Oracle-Datensatztyp (nicht unterstützt)
CREATE TYPE example_customer_details IS RECORD
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);
Beispielschritte

Schritt 1: Erstellen Sie das Objekt
Um Oracle-Objekttypen zu verwenden, erstellen Sie zunächst das Objekt in der Oracle-Datenbank:

Objekt erstellen
CREATE OR REPLACE TYPE example_customer_details AS OBJECT
(status                    NUMBER
,party_id                  NUMBER
,account_id                VARCHAR
);

Schritt 2: Erstellen Sie das Paket
Erstellen Sie anschließend das Paket als Funktion in der Oracle-Datenbank:

Paket erstellen
CREATE OR REPLACE PACKAGE example AS
  FUNCTION processcustomer(custin IN example_customer_details, new_account_number IN VARCHAR) RETURN example_customer_details;
END example;

Schritt 3: Erstellen Sie den Pakettext
Erstellen Sie anschließend den Pakettext als Funktion in der Oracle-Datenbank:

Pakettext erstellen
CREATE OR REPLACE PACKAGE BODY example AS
FUNCTION processcustomer(custin IN example_customer_details, new_account_number IN varchar) RETURN example_customer_details
  IS
  custout example_customer_details;
  BEGIN
     custout := example_customer_details(
     custin.status + 1,
     custin.party_id,
     new_account_number
     );
     return custout;
END;
END example;

Schritt 4: Rufen Sie die gespeicherte Prozedur in Jitterbit auf
Jetzt können Sie die gespeicherte Prozedur processcustomer von Jitterbit aus mit der Funktion CallStoredProcedure aufrufen. Dieses Beispielskript zeigt, wie Sie ein Objekt an die Funktion CallStoredProcedure übergeben. Sie können Objekte von einer gespeicherten Prozedur auch auf ähnliche Weise als Rückgabe- oder Ausgabeparameter übergeben.

Jitterbit-Skript erstellen
<trans>
$cust = dict();
$cust["status"] = 1;
$cust["party_id"] = 10;
$cust["account_id"] = "2341";

$custout = CallStoredProcedure("<TAG>Sources/OracleDatabase</TAG>",
    "EXAMPLE.PROCESSCUSTOMER", "", $cust,"NA0233");

$result = "Status: " + $custout["STATUS"] +
  "  Party ID: " + $custout["PARTY_ID"] +
  "  Account ID:  " + $custout["ACCOUNT_ID"];

WriteToOperationLog("Resulting object: " + $result);
</trans>

Hinweis

Im Beispiel erwartet die Funktion processcustomer in Oracle zwei Parameter: das benutzerdefinierte Objekt (example_customer_details) und einen VARCHAR (new_account_number). Im obigen Beispiel stellt das Wörterbuch $cust das benutzerdefinierte Objekt dar, und NA0233 stellt den VARCHAR dar.

Vorsicht

Bei der Ausgabe sind die Eigenschaftsnamen des Datentyps case-sensitiv und daher in Großbuchstaben. Bei Eingabeobjekten sind die Eigenschaftsnamen nicht case-sensitiv.

DBCloseConnection

Deklaration

void DBCloseConnection(string databaseId)

Syntax

DBCloseConnection(<databaseId>)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für die Datenbankquelle im aktuellen Projekt

Beschreibung

Führt die aktuelle Transaktion durch und schließt die Datenbankverbindung.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis

Mit dieser Funktion erstellte Endpunkte sind in der Endpunkt-Nutzungsberichterstellung enthalten und werden auf die Lizenz angerechnet.

Beispiele

// Schließen einer Datenbankverbindung
DBCloseConnection("<TAG>Sources/myDBTarget</TAG>");

DBExecute

Deklaration

array DBExecute(string databaseId, string sql)

int DBExecute(string databaseId, string sql, string outputVariable,...)

Syntax

DBExecute(<databaseId>, <sql>)

DBExecute(<databaseId>, <sql>, <outputVariable>,...)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für die Datenbankquelle im aktuellen Projekt
  • sql: Der SQL-Befehl, der für die Datenbank ausgeführt werden soll
  • outputVariable: (Zweite Form) Ein Ausgabeparameter, der den in dem SQL-Befehl zurückgegebenen Feldern entspricht. Zusätzliche Argumente können nach Bedarf angegeben werden.

Beschreibung

Führt eine SQL-Anweisung für eine Datenbank aus und gibt die Ergebnisse zurück.

Wenn die SQL-Anweisung ein Resultset erzeugt, gibt es zwei Möglichkeiten, die Daten abzurufen:

  • Wenn nur die zwei erforderlichen Parameter angegeben werden (erste Form), gibt die Funktion das vollständige Recordset als Array von Zeilen zurück.

    Anschließend kann eine While()-Schleife verwendet werden, um die Zeilen zu durchlaufen und Get() zum Abrufen der Daten zu verwenden. Wenn keine Zeilen zurückgegeben werden, gibt die Methode ein leeres Array zurück (Length($arr) == 0).

  • Wenn zusätzlich zu den zwei erforderlichen Parametern Ausgabevariablen angegeben werden (zweite Form), werden die Werte der Felder der ersten Zeile zurückgegeben.

    Übergeben Sie Namen von globalen Variablen in Anführungszeichen als Parameter nach den ersten zwei Parametern. Der Wert des ersten Feldes der ersten Zeile wird in die globale Variable geschrieben, die als dritter Parameter übergeben wird, das zweite Feld der ersten Zeile in den vierten Parameter usw. Alternativ können die globalen Variablen durch Voranstellen eines $-Zeichens als Referenz übergeben werden, z. B. $output.

    Der Rückgabewert ist in diesem Fall die Anzahl der zurückgegebenen Datensätze: entweder 1 (wenn Datensätze gefunden wurden) oder 0 (wenn keine zurückgegeben wurden).

Die zurückgegebenen Datenwerte sind immer Zeichenketten. Binärdaten werden als Hex-String-Darstellung zurückgegeben.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis

Mit dieser Funktion erstellte Endpunkte sind in der Endpunkt-Nutzungsberichterstellung enthalten und werden auf die Lizenz angerechnet.

Zugehörige Jitterbit-Variablen

  • Wenn diese Methode erfolgreich abgeschlossen wird, enthält $jitterbit.scripting.db.rows_affected die Anzahl der von der Abfrage betroffenen Zeilen.
  • Wenn ein JDBC-Treiber zum Verbinden mit einer Datenbank verwendet wird, setzen Sie jitterbit.scripting.db.search.rowset auf true vor der Funktion, um alle Aufrufe einer gespeicherten Prozedur, die mehrere Ergebnisse zurückgibt, so zu konfigurieren, dass das erste nicht leere Datensatz-Set statt eines leeren Sets zurückgegeben wird.
  • Um die Anweisung in einer Transaktion auszuführen, setzen Sie die Variablen $jitterbit.scripting.db.auto_commit=false und $jitterbit.scripting.db.transaction=true in einem Skript vor dem Aufruf. Die Transaktion wird am Ende einer erfolgreichen Transformation committed. Das Setzen beider Variablen (auto_commit und transaction) auf true führt zu einem Fehler.
  • Setzen Sie $jitterbit.scripting.db.max_rows, um die Anzahl der zurückzugebenden Datensätze zu begrenzen. Der Standard liegt bei 10.000 Zeilen.

Beispiele

Beispiel 1: Ausführen und Abrufen von Werten in einem Array

// Results of the SQL select as an array
rows = DBExecute("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE, ORDER_AMOUNT FROM PO_HEADER WHERE PO_NUMBER = 1");

// The value of the database column ORDER_TYPE can then be accessed with
// Get($rows, $i, 0) where $i is the 0-based count of the row you want retrieved.

Beispiel 2: Ausführen und Abrufen von Werten in übergebenen referenzierten globalen Variablen

// Results of the SQL select will be in the $custName and $custAddr global variables:
DBExecute("<TAG>Sources/myDBTarget</TAG>",
    "SELECT CustomerName, CustomerAddress FROM Customers WHERE CustomerId = " + $custId,
    $custName,
    $custAddr);

// The value of the database column CustomerName can then
// be accessed with either Get("custName") or $custName.

Beispiel 3: Ausführen und Abrufen von Werten in übergebenen benannten globalen Variablen

// Results of the SQL select will be in the OrderType and OrderAmount global variables:
DBExecute("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE, ORDER_AMOUNT FROM PO_HEADER WHERE PO_NUMBER = 1",
    "OrderType", "OrderAmount");

// The value of the database column ORDER_TYPE can then
// be accessed with either Get("OrderType") or $OrderType.

Beispiel 4: Ausführen einer gespeicherten Prozedur

// An alternative to the CallStoredProcedure function.
// Configurable procedure definition as a variable:

$sql = "BEGIN
MyStoredProcedure;
END;";

DBExecute("<TAG>Sources/myDBTarget</TAG>", $sql);

DBLoad

Deklaration

void DBLoad(string source, string target, int mode, string tablename, string columnNames[, string columnKeynames, int skipLines, string dateFormat, string datetimeFormat])

Syntax

DBLoad(<source>, <target>, <mode>, <tablename>, <columnNames>[, <columnKeynames>, <skipLines>, <dateFormat>, <datetimeFormat>])

Erforderliche Parameter

  • source: Eine String-Quelle im aktuellen Projekt, die eine einzelne Datei im CSV-Format ist
  • target: Ein String-Datenbankziel im aktuellen Projekt
  • mode: Eine Ganzzahl; einer von 1 (Upsert), 2 (Einfügen) oder 3 (Aktualisieren)
  • tablename: Die Tabelle in der Zieldatenbank
  • columnNames: Eine durch Kommas getrennte Liste von Spaltennamen
  • columnKeynames: Eine durch Kommas getrennte Liste von Spaltennamen, die den Aktualisierungsschlüssel bilden. Erforderlich, wenn der Modus nicht 2 ist.

Optionale Parameter

  • skipLines: Anzahl der Zeilen, die am Anfang der Datei ignoriert werden sollen (wird zum Überspringen von Kopfzeilen verwendet)
  • dateFormat: Gibt das Format von Datumsfeldern an, z. B. "Date" in Oracle-Datenbanken
  • datetimeFormat: Gibt das Format von Datetime-Feldern an, z. B. "TimeStamp" in Oracle-Datenbanken

Beschreibung

Nimmt eine Quelle (eine einzelne Datei im CSV-Format) und lädt die Daten in eine angegebene Tabelle in einer Zieldatenbank.

Der Parameter columnKeynames wird nicht verwendet, wenn nur eingefügt wird (mode=2), und kann in diesem Fall weggelassen werden.

Quelle

Die in diesem Funktionsaufruf verwendete Quelle muss als Dateiquelle des aktuellen Projekts definiert sein. Die erste Datei, die von dieser Quelle zurückgegeben wird, wird verwendet. Siehe die Anweisungen zum Einfügen von Projektelementen.

Warnung

Die Funktion DBLoad() funktioniert nur mit JDBC-Datenbankzielen.

Hinweis

Endpunkte, die mit dieser Funktion erstellt werden, sind in der Endpunkt-Nutzungsberichterstellung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

// Using the file returned from the source "MyCSVData",
// this example upserts (mode=1) into the table "MyTable"
// on the Database target "SQL Server JDBC". "MyCSVData"
// is expected to be a CSV file that contains data for
// the columns "ID,Col1,Col2,Col3". The update key (used
// to decide whether to update or insert) will be on the
// column "ID". The first line of the CSV file will be
// ignored as it is a header:

DBLoad("<TAG>Sources/MyCSVData</TAG>",
    "<TAG>Targets/SQL Server JDBC</TAG>", 1,
    "MyTable", "ID,Col1,Col2,Col3", "ID", 1);

DBLookup

Deklaration

string DBLookup(string databaseId, string sql)

Syntax

DBLookup(<databaseId>, <sql>)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für die Datenbankquelle im aktuellen Projekt
  • sql: Der SQL-Befehl, der für die Datenbank ausgeführt werden soll

Beschreibung

Führt eine SQL-Anweisung für eine Datenbank aus und gibt das erste Feld des ersten Ergebnisses zurück, das den angegebenen Kriterien entspricht.

Der zurückgegebene Datenwert ist immer eine Zeichenkette. Binärdaten werden als Hexadezimal-Zeichenketten-Darstellung zurückgegeben. Wenn keine Zeilen für die angegebene Abfrage zurückgegeben werden, gibt die Funktion null zurück.

Die globale Jitterbit-Variable $jitterbit.scripting.db.rows_affected wird von dieser Methode nicht gesetzt.

Für komplexere Abfragen, bei denen mehrere Werte oder Zeilen abgerufen werden sollen, verwenden Sie die Funktionen DBLookupAll oder DBExecute.

Datenbank-ID

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis

Endpunkte, die mit dieser Funktion erstellt werden, sind in der Endpunkt-Nutzungsberichterstattung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

// Returns the first field of the first result from
// running the SQL query
result = DBLookup("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER=1");

DBLookupAll

Deklaration

array DBLookupAll(string databaseId, string sql)

Syntax

DBLookupAll(<databaseId>, <sql>)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für die Datenbankquelle im aktuellen Projekt
  • sql: Der SQL-Befehl, der für die Datenbank ausgeführt werden soll

Beschreibung

Führt eine SQL-Anweisung für eine Datenbank aus und gibt die Ergebnisse zurück, die den angegebenen Kriterien entsprechen.

Die zurückgegebenen Daten werden immer als zweidimensionales Array von Zeichenketten zurückgegeben. Binärdaten werden als Hexadezimal-Zeichenketten-Darstellung zurückgegeben. Wenn keine Zeilen für die angegebene Abfrage zurückgegeben werden, gibt die Funktion ein leeres Array zurück.

Die globale Jitterbit-Variable $jitterbit.scripting.db.rows_affected wird von dieser Methode nicht gesetzt.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Für komplexere Abfragen, bei denen Daten direkt in globale Variablen abgerufen werden sollen, verwenden Sie die Funktion DBExecute.

Hinweis

Endpunkte, die mit dieser Funktion erstellt werden, sind in der Endpunkt-Nutzungsberichterstattung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

// Gibt das Ergebnis der SQL-Abfrage zurück
result = DBLookupAll("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER=1");

DBRollbackTransaction

Deklaration

void DBRollbackTransaction(string databaseId)

Syntax

DBRollbackTransaction(<databaseId>)

Erforderliche Parameter

  • databaseId: Eine Zeichenkette für die Datenbankquelle im aktuellen Projekt

Beschreibung

Rollback der aktuellen Transaktion und Schließung der Datenbankverbindung.

Die in diesem Funktionsaufruf verwendete Datenbank muss als Quelle oder Ziel des aktuellen Projekts definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis

Mit dieser Funktion erstellte Endpunkte sind in der Endpunkt-Nutzungsberichterstattung enthalten und werden auf Ihre Lizenz angerechnet.

Beispiele

// Rollback der aktuellen Transaktion
DBRollbackTransaction("<TAG>Sources/myDBTarget</TAG>");

DBWrite

Deklaration

void DBWrite(string source, string target, int mode, string tablename, string columnNames[, string columnKeynames, int skipLines, string dateFormat, string datetimeFormat])

Syntax

DBWrite(<source>, <target>, <mode>, <tablename>, <columnNames>[, <columnKeynames>, <skipLines>, <dateFormat>, <datetimeFormat>])

Beschreibung

Ein Alias für die Funktion DBLoad. Weitere Informationen finden Sie unter DBLoad.

Hinweis

Mit dieser Funktion erstellte Endpunkte sind in der Endpunkt-Nutzungsberichterstattung enthalten und werden auf Ihre Lizenz angerechnet.

SetDBInsert

Deklaration

void SetDBInsert()

Syntax

SetDBInsert()

Beschreibung

Setzt den aktuellen Modus für Einfügen/Aktualisieren für den aktuellen Datensatz auf „Einfügen" außer Kraft. Der Rückgabewert ist null.

Beispiele

// Setzt den Modus für Einfügen/Aktualisieren auf „Einfügen"
// für den aktuellen Datensatz
SetDBInsert();

SetDBUpdate

Deklaration

void SetDBUpdate()

Syntax

SetDBUpdate()

Beschreibung

Setzt den aktuellen Modus für Einfügen/Aktualisieren für den aktuellen Datensatz auf „Aktualisieren" außer Kraft. Der Rückgabewert ist null.

Beispiele

// Setzt den Modus für Einfügen/Aktualisieren auf „Aktualisieren"
// für den aktuellen Datensatz
SetDBUpdate();

SQLEscape

Deklaration

string SQLEscape(string unescapedSQL[, bool escapeBackslash])

Syntax

SQLEscape(<unescapedSQL>[, <escapeBackslash>])

Erforderliche Parameter

  • unescapedSQL: Eine SQL-Zeichenkette, die maskiert werden soll

Optionale Parameter

  • escapeBackslash: Boolesches Flag, das angibt, ob Backslashes („\") durch Verdopplung maskiert werden sollen; Standard ist false

Beschreibung

Führt die erforderliche Maskierung von Literalzeichenketten durch, die in einer SQL-Anweisung verwendet werden.

Zeichenketten, die als Zeichenkonstanten in einer SQL-Anweisung verwendet werden, verwenden ein einfaches Anführungszeichen (') als Trennzeichen. Wenn die tatsächlichen Daten einfache Anführungszeichen enthalten, müssen diese durch doppelte Angabe maskiert werden. Diese Methode maskiert einfache Anführungszeichen nach dem SQL-Standard, indem jedes einfache Anführungszeichen (') durch zwei einfache Anführungszeichen ('') ersetzt wird. Wenn auch Backslash-Zeichen maskiert werden sollen, geben Sie den zweiten Parameter an und setzen Sie ihn auf true.

Beispiele

// In this example, the variable GUID needs to have
// any single quotes in it escaped (doubled); the
// resulting string is then enclosed in single quotes
// by the Quote function before being used in a
// DBLookup function:


DBLookup("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_ID=" +
    Quote(SQLEscape(GUID)));

Unmap

Deklaration

void Unmap()

Syntax

Unmap()

Beschreibung

Diese Funktion wird in Zuordnungen verwendet und setzt ein Zielfeld so, dass es als nicht zugeordnet behandelt wird und aus der Ausgabe entfernt wird. Der Rückgabewert ist null.

Das Zuordnen eines null-Quellwerts ist nicht dasselbe wie das Aufrufen von Unmap: Ein null-Wert wird weiterhin in das Ausgabefeld geschrieben, während Unmap das Feld vollständig auslässt. Verwenden Sie Unmap, wenn das Feld selbst in der Ausgabe fehlen muss, nicht nur leer sein.

Diese Funktion hat nur dann eine Auswirkung, wenn sie direkt aus dem eigenen Zuordnungsausdruck des Zielfelds zurückgegeben wird. Das Aufrufen von Unmap innerhalb eines Skripts, das von RunScript aufgerufen wird, hat keine Auswirkung auf das Feld, da RunScript das Ergebnis des aufgerufenen Skripts als Zeichenkette zurückgibt, anstatt das Unmap-Signal an die Zuordnung zurückzugeben. Mit Agent-Version 12.9 und später hat ein RunScript-Aufruf am Anfang des eigenen Zuordnungsausdrucks des Zielfelds diese Einschränkung nicht. Bei früheren Agent-Versionen gibt Unmap in diesem Fall null zurück, anstatt das Feld zu unmappen.

Das Verhalten variiert je nach Zieltyp:

  • JSON und XML: Das Feld oder Element wird vollständig weggelassen. Wenn jedes Feld eines JSON-Objekts unmapped ist, bleibt das Objekt in der Ausgabe als leeres {} erhalten, anstatt entfernt zu werden.
  • CSV: Die Spalte wird nicht entfernt; das Feld wird stattdessen als leerer Wert geschrieben, da eine CSV-Zeile eine Positionsspalte nicht weglassen kann.
  • XSD, ZIP und andere schemadefinierte XML-Ziele: Das Element wird weggelassen. Wenn jedes untergeordnete Element eines übergeordneten Elements unmapped ist, wird auch das übergeordnete Element weggelassen (ein Wurzelelement mit allen unmapped Feldern wird selbstschließend), und dies setzt sich durch verschachtelte Ebenen eines hierarchischen Schemas fort.
  • Datenbank: Das Feld wird aus der generierten INSERT-Anweisung ausgeschlossen.

Beispiele

valueToInsert = DBLookup(....);
// If valueToInsert returned by a DBLookup is null, we want to treat
// this field as unmapped and we do not want to include it in the INSERT statement
// that is being generated for the DB target for this record:
If (valueToInsert == Null(), Unmap(), valueToInsert);

<SEQUENCE>

Deklaration

<SEQUENCE>

Syntax

<SEQUENCE>

Beschreibung

Zur Verwendung in Zuordnungen mit Oracle-Datenbanken wird diese Funktion verwendet, wenn das Ziel Tabellen enthält, die durch eine Primärschlüssel-/Fremdschlüsselbeziehung verknüpft sind. Ordnen Sie dies in diesem Fall den Primärschlüsseln zu, die von der Oracle-Datenbank generiert werden.

Verwenden Sie für Datenbanken außer Oracle stattdessen die Funktion <SQLIDENTITY>.

Hinweis

In der Syntax für diese Funktion sind die Symbole kleiner als ("<") und größer als (">") Teil der Funktionssyntax.

Beispiele

Wenn <trans>-Tags vorhanden sind, sollte <SEQUENCE> wie folgt außerhalb davon platziert werden:

<trans>
</trans>
<SEQUENCE>

<SQLIDENTITY>

Deklaration

<SQLIDENTITY>

Syntax

<SQLIDENTITY>

Beschreibung

Zur Verwendung in Zuordnungen mit Nicht-Oracle-Datenbanken wird diese Funktion verwendet, wenn das Ziel Tabellen enthält, die durch eine Primärschlüssel-/Fremdschlüsselbeziehung verknüpft sind. Ordnen Sie dies in diesem Fall den Primärschlüsseln zu, die von der Datenbank generiert werden, wie z. B. Identity in SQL Server oder Serial in PostgreSQL. Verwenden Sie für Oracle-Datenbanken stattdessen die Funktion <SEQUENCE>.

Hinweis

In der Syntax für diese Funktion sind die Symbole kleiner als ("<") und größer als (">") Teil der Funktionssyntax.

Beispiele

Wenn <trans>-Tags vorhanden sind, sollte <SQLIDENTITY> wie folgt außerhalb davon platziert werden:

<trans>
</trans>
<SQLIDENTITY>

<UDF>

Deklaration

<UDF>string userDefinedFunction

Syntax

<UDF><userDefinedFunction>

Erforderliche Parameter

  • userDefinedFunction: Eine Zeichenkette, die einen benutzerdefinierten Funktionsaufruf definiert

Beschreibung

Fügt eine benutzerdefinierte Datenbankfunktion am Anfang einer Formel hinzu. Das Präfix <UDF> wird aus dem Ausdruck entfernt, bevor dieser an eine Datenbank weitergegeben wird. Beachten Sie, dass öffnende und schließende <trans>-Tags verwendet werden können, um Teile des Funktionsaufrufs anzugeben, die von Jitterbit ausgewertet werden sollen, bevor der Ausdruck an eine Datenbank weitergegeben wird.

Hinweis

In der Syntax für diese Funktion sind die Kleiner-als-Zeichen ("<") und Größer-als-Zeichen (">") um <UDF> Teil der Funktionssyntax.

Beispiele

// The user-defined function geography::Point()
// is being called with parameters created by evaluating
// the Jitterbit Script enclosed by <trans> tags:

<UDF>geography::Point(<trans>json$Incidents$item.Latitude$ + ","
  + json$Incidents$item.Longitude$ + ",4326";</trans>)