Zum Inhalt springen

Datenbankfunktionen im 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 Zeichenfolge, die die Datenquelle im aktuellen Projekt angibt
  • sql: Der SQL-Befehl, der gegen die Datenbank ausgeführt werden soll

Beschreibung

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

Wenn für die im sql angegebene Abfrage keine Zeilen zurückgegeben werden, gibt die Funktion null zurück.

Die globale Jitterbit-Variable $jitterbit.scripting.db.rows_affected wird durch diese 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 Caching ist die Verwendung der Funktionen Set und Get.

Hinweis

Endpunkte, die mit dieser Funktion erstellt wurden, sind in Endpoint-Nutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Nachschlagen in einer Datenbank mit einer SQL-Zeichenfolge
CacheLookup("<TAG>Sources/myDBTarget</TAG>",
    "SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER=1");

CallStoredProcedure

Declaration

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

Syntax

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

Required parameters

  • databaseId: Eine Zeichenfolge, die die Datenquelle im aktuellen Projekt angibt
  • spName: Die gespeicherte Prozedur, die auf dem Datenbankserver ausgeführt werden soll
  • resultSet: Eine globale Variable, die das von dem Datenbankserver zurückgegebene Ergebnisset speichert, falls zutreffend. (Siehe die Hinweise unten).

Optional parameters

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

Description

Ruft die gespeicherte Prozedur spName unter Verwendung der Verbindungsinformationen auf, die durch die Quelle/Ziel identifiziert werden, die durch databaseId angegeben ist.

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

Hinweis

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

Vorsicht

Der resultSet Parameter wird nur von JDBC-Datenbanktreibern unterstützt. Wenn ODBC verwendet wird, gibt der resultSet immer null zurück.

Die verbleibenden optionalen Parameter werden verwendet, um Eingabe- 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 fest codierter Wert, der Wert einer Quelle oder der Wert einer Berechnung oder Formel sein. Ausgabeargumente (einschließlich des resultSet) werden durch Referenz als "$name" angegeben, wobei "name" der Name der globalen Variable ist, die den Ausgabewert speichern wird. Der Rückgabewert und der Typ der Funktion sind der Rückgabewert und der Typ der gespeicherten Prozedur.

Wichtig

Bei der Verwendung der CallStoredProcedure-Funktion auf Datenbanken, die die Oracle- oder Microsoft SQL Server JDBC-Treiber verwenden, kann ein String index out of range: -1-Fehler bei gespeicherten Prozeduren auftreten, die keine inputOutputVariable-Parameter verwenden.

Wenn dies auftritt, ziehen Sie in Betracht, DBExecute als Workaround zu verwenden, um die gespeicherte Prozedur auszuführen:

$sql = "BEGIN
MyStoredProcedure;
END;";

$result = DBExecute("<TAG>Sources/Oracle</TAG>",$sql);

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 wurden, sind in Endpoint-Nutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

Beispiel 1: Aufrufen einer gespeicherten Prozedur ohne Ergebnismenge

// 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 Ergebnismenge

// 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 Record-Typen

Jitterbit unterstützt Oracle-Objekttypen für die Arbeit mit Oracle-Datenbanken bei Verwendung des Oracle JDBC-Treibers. Oracle-Objekttypen sind ähnlich wie Oracle-Record-Typen, die in Jitterbit aufgrund mangelnder Unterstützung durch Oracle nicht unterstützt werden.

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-Record-Typen.

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

Hinweis

Weitere Informationen zu den Unterschieden zwischen den Oracle Record Types und Oracle Object Types finden Sie in der Dokumentation von Oracle. Siehe Record Variable Declaration und Using PL/SQL With Object Types der Oracle-Datenbankdokumentation zur Version 18 für weitere Informationen.

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

Oracle-Typdefinitionen

Eine Oracle Object Type-Definition folgt diesem Muster:

Oracle Object Type (Supported)
CREATE OR REPLACE TYPE example_customer_details AS OBJECT
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);

Eine Oracle Record Type-Definition folgt diesem Muster:

Oracle Record Type (Not Supported)
CREATE TYPE example_customer_details IS RECORD
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);
Beispielschritte

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

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

Schritt 2: Erstellen Sie das Paket
Als Nächstes erstellen Sie das Paket als Funktion in der Oracle-Datenbank:

Create Package
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 Paketkörper
Als Nächstes erstellen Sie den Paketkörper als Funktion in der Oracle-Datenbank:

Create Package Body
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 das gespeicherte Verfahren in Jitterbit auf
Jetzt sind Sie bereit, das gespeicherte Verfahren processcustomer von Jitterbit aus mit der CallStoredProcedure-Funktion aufzurufen. Dieses Beispielskript zeigt, wie Sie ein Objekt an die CallStoredProcedure-Funktion übergeben. Sie können auch Objekte aus einem gespeicherten Verfahren als Rückgabe- oder Ausgabewerte auf ähnliche Weise übergeben.

Create Jitterbit Script
<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

In dem Beispiel erwartet die processcustomer-Funktion in Oracle zwei Parameter: das benutzerdefinierte Objekt (example_customer_details) und eine VARCHAR (new_account_number). Im obigen Beispiel stellt das Wörterbuch $cust das benutzerdefinierte Objekt dar, und NA0233 repräsentiert die VARCHAR.

Vorsicht

Bei der Ausgabe sind die Eigenschaftsnamen des Datentyps großschreibungsempfindlich und somit in Großbuchstaben. Bei Eingabeobjekten sind die Eigenschaftsnamen nicht großschreibungsempfindlich.

DBCloseConnection

Declaration

void DBCloseConnection(string databaseId)

Syntax

DBCloseConnection(<databaseId>)

Required parameters

  • databaseId: Eine Zeichenfolge, die die Datenquelle im aktuellen Projekt angibt.

Description

Bestätigt die aktuelle Transaktion 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

Endpunkte, die mit dieser Funktion erstellt wurden, sind in Endpoint-Nutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Examples

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

DBExecute

Declaration

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 Zeichenfolge, die die Datenbankquelle im aktuellen Projekt angibt
  • sql: Der SQL-Befehl, der gegen die Datenbank ausgeführt werden soll
  • outputVariable: (Zweite Form) Ein Ausgabewert, der mit den in dem SQL-Befehl zurückgegebenen Feldern übereinstimmt. Zusätzliche Argumente können nach Bedarf angegeben werden.

Beschreibung

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

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

  • Wenn Sie nur die beiden erforderlichen Parameter angeben (erste Form), gibt die Funktion das vollständige Datensatzset als Array von Zeilen zurück.

    Sie können dann eine While()-Schleife verwenden, um über die Zeilen zu iterieren und Get() zu verwenden, um die Daten abzurufen. Wenn keine Zeilen zurückgegeben werden, gibt die Methode ein leeres Array zurück (Length($arr) == 0).

  • Wenn Sie zusätzlich zu den beiden erforderlichen Parametern Ausgabewerte angeben (zweite Form), werden die Werte der Felder der ersten Zeile zurückgegeben.

    Übergeben Sie die Namen der globalen Variablen in Anführungszeichen als Parameter nach den ersten beiden 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 und so weiter. Alternativ können die globalen Variablen durch Voranstellen eines $-Zeichens als Referenz übergeben werden, wie 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 Zeichenfolgen. Binäre Daten werden als hexadezimale Zeichenfolgenrepräsentation 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 Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Verwandte 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 verwendet wird, um eine Verbindung zu einer Datenbank herzustellen, setzen Sie jitterbit.scripting.db.search.rowset auf true, bevor die Funktion aufgerufen wird, um sicherzustellen, dass alle Aufrufe einer gespeicherten Prozedur, die mehrere Ergebnisse zurückgibt, das erste nicht leere Datensatzset anstelle eines leeren Sets zurückgeben.
  • 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 festgeschrieben. Wenn beide Variablen (auto_commit und transaction) auf true gesetzt werden, führt dies zu einem Fehler.
  • Setzen Sie $jitterbit.scripting.db.max_rows, um die Anzahl der zurückzugebenden Datensätze zu begrenzen. Der Standardwert beträgt 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.

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 Zeichenfolge, die die Quelle im aktuellen Projekt darstellt und eine einzelne Datei im CSV-Format ist
  • target: Eine Zeichenfolge, die das Datenbankziel im aktuellen Projekt darstellt
  • 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 verwendet, um Kopfzeilen zu überspringen)
  • dateFormat: Gibt das Format von Datumsfeldern an, wie "Date" in Oracle-Datenbanken
  • datetimeFormat: Gibt das Format von Datumszeitfeldern an, wie "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 aus 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 wurden, sind in Endpoint-Nutzungsberichten enthalten und zählen zu Ihrer Lizenz.

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 Zeichenfolge, die die Datenquelle im aktuellen Projekt angibt
  • sql: Der SQL-Befehl, der gegen die Datenbank ausgeführt werden soll

Beschreibung

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

Der zurückgegebene Datenwert ist immer eine Zeichenfolge. Binärdaten werden als ihre hexadezimale Zeichenfolgenrepräsentation zurückgegeben. Wenn für die angegebene Abfrage keine Zeilen 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 Sie mehr als einen Wert oder eine Zeile abrufen möchten, 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 wurden, sind in Endpoint-Nutzungsberichten enthalten und zählen zu Ihrer Lizenz.

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 Zeichenfolge, die die Datenquelle im aktuellen Projekt angibt
  • sql: Der SQL-Befehl, der gegen die Datenbank ausgeführt werden soll

Beschreibung

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

Die zurückgegebenen Daten werden immer als zweidimensionales Array von Zeichenfolgen zurückgegeben. Binärdaten werden als ihre hexadezimale Zeichenfolgenrepräsentation zurückgegeben. Wenn für die angegebene Abfrage keine Zeilen 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 fortgeschrittene Abfragen, bei denen Sie direkt in globale Variablen abrufen möchten, verwenden Sie die Funktion DBExecute.

Hinweis

Mit dieser Funktion erstellte Endpunkte sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Gibt das Ergebnis der Ausführung 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 Zeichenfolge, die die Datenbankquelle im aktuellen Projekt angibt

Beschreibung

Rollbackt die aktuelle Transaktion 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 Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Rollbackt die aktuelle 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. Siehe DBLoad für Details.

Hinweis

Endpunkte, die mit dieser Funktion erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

SetDBInsert

Deklaration

void SetDBInsert()

Syntax

SetDBInsert()

Beschreibung

Überschreibt die aktuelle Einstellung des Einfüge-/Aktualisierungsmodus auf "einfügen" für den aktuellen Datensatz. Der Rückgabewert ist null.

Beispiele

// Setzt den Einfüge-/Aktualisierungsmodus auf "einfügen"
// für den aktuellen Datensatz
SetDBInsert();

SetDBUpdate

Deklaration

void SetDBUpdate()

Syntax

SetDBUpdate()

Beschreibung

Überschreibt die aktuelle Einstellung des Einfüge-/Aktualisierungsmodus auf "aktualisieren" für den aktuellen Datensatz. Der Rückgabewert ist null.

Beispiele

// Setzt den Einfüge-/Aktualisierungsmodus auf "aktualisieren"
// für den aktuellen Datensatz
SetDBUpdate();

SQLEscape

Declaration

string SQLEscape(string unescapedSQL[, bool escapeBackslash])

Syntax

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

Required parameters

  • unescapedSQL: Ein SQL-String, der escaped werden soll

Optional parameters

  • escapeBackslash: Boolean-Flag, das angibt, ob Backslashes ("\") durch Verdopplung escaped werden sollen; Standard ist false

Description

Führt das notwendige Escaping von Literalstrings in einer SQL-Anweisung durch.

Strings, 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 zweimalige Angabe escaped werden. Diese Methode escaped einfache Anführungszeichen gemäß dem SQL-Standard, indem jedes einfache Anführungszeichen (') durch zwei einfache Anführungszeichen ('') ersetzt wird. Wenn auch Backslash-Zeichen escaped werden sollen, geben Sie den zweiten Parameter an und setzen Sie ihn auf true.

Examples

// 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

Declaration

void Unmap()

Syntax

Unmap()

Description

Für die Verwendung in Mappings setzt diese Funktion ein Datenbankziel-Feld so, dass es als unmapped behandelt wird. Der Rückgabewert ist null.

Examples

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>

Declaration

<SEQUENCE>

Syntax

<SEQUENCE>

Description

Für die Verwendung in Mappings mit Oracle-Datenbanken wird diese Funktion verwendet, wenn das Ziel Tabellen enthält, die durch eine Primärschlüssel/Fremdschlüssel-Beziehung verbunden sind. In diesem Fall mappen Sie dies auf die Primärschlüssel, die von der Oracle-Datenbank generiert werden.

Für Datenbanken außer Oracle verwenden Sie stattdessen die Funktion <SQLIDENTITY>.

Hinweis

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

Beispiele

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

<trans>
</trans>
<SEQUENCE>

<SQLIDENTITY>

Deklaration

<SQLIDENTITY>

Syntax

<SQLIDENTITY>

Beschreibung

Diese Funktion wird in Zuordnungen mit Nicht-Oracle-Datenbanken verwendet, wenn das Ziel Tabellen enthält, die durch eine Primärschlüssel/Fremdschlüssel-Beziehung verknüpft sind. In diesem Fall wird dies auf die Primärschlüssel abgebildet, die von der Datenbank generiert werden, wie Identity in SQL Server oder Serial in PostgreSQL. Für Oracle-Datenbanken verwenden Sie stattdessen die Funktion <SEQUENCE>.

Hinweis

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

Beispiele

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

<trans>
</trans>
<SQLIDENTITY>

<UDF>

Deklaration

<UDF>string userDefinedFunction

Syntax

<UDF><userDefinedFunction>

Erforderliche Parameter

  • userDefinedFunction: Ein String, der einen Aufruf einer benutzerdefinierten Funktion definiert

Beschreibung

Fügt eine benutzerdefinierte Datenbankfunktion an den Anfang einer Formel hinzu. Das <UDF>-Präfix wird von dem Ausdruck entfernt, bevor er 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 übergeben wird.

Hinweis

In der Syntax für diese Funktion sind die kleiner- ("<") und größer- (">") Symbole 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>)