Datenbankfunktionen im Jitterbit Integration Studio
Datenbankfunktionen bieten Zugriff auf grundlegende Datenbankinteraktionen.
CacheLookup
Deklaration
string CacheLookup(string databaseId, string sql)
Syntax
CacheLookup(<databaseId>, <sql>)
Erforderliche Parameter
databaseId
: Ein String-Verweis auf eine Datenbankverbindung im aktuellen Projektsql
: 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 Operationenkette, 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 von dieser Methode nicht gesetzt.
Die in diesem Funktionsaufruf verwendete Datenbank muss als Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Eine Alternative zum Caching ist die Verwendung der Funktionen Set
und Get
.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, sind in Berichterstattung über die Endpunktnutzung enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Abfrage in einer Datenbank mit einer SQL-Zeichenfolge
CacheLookup("<TAG>endpoint:database/My Database</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
: Ein String-Verweis auf einen Datenbankverbindungspfad im aktuellen ProjektspName
: Die auszuführende gespeicherte Prozedur auf dem DatenbankserverresultSet
: Eine globale Variable, um das vom Datenbankserver zurückgegebene Ergebnisset zu halten, falls zutreffend. (Siehe Anmerkungen unten).
Optionale Parameter
inputOutputVariable
: Ein Eingabe- 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
unter Verwendung der Verbindungsinformationen auf, die durch die Datenbankverbindung identifiziert werden, die durch databaseId
angegeben ist.
Falls zutreffend, ist das zurückgegebene resultSet
ein zweidimensionales Array von Strings. 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 derzeit nur von JDBC-Datenbanktreibern unterstützt. Bei Verwendung von ODBC 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 Variablen ist, die den Ausgabewert halten wird. Der Rückgabewert und der Typ der Funktion sind der Rückgabewert und der Typ des gespeicherten Verfahrens.
Wichtig
Bei der Verwendung der Funktion CallStoredProcedure
in Datenbanken, die die Oracle- oder Microsoft SQL Server JDBC-Treiber verwenden, kann ein Fehler String index out of range: -1
bei gespeicherten Verfahren auftreten, die keine inputOutputVariable
-Parameter verwenden.
Wenn dies auftritt, ziehen Sie in Betracht, DBExecute
als Workaround zu verwenden, um das gespeicherte Verfahren auszuführen:
$sql = "BEGIN
MyStoredProcedure;
END;";
$result = DBExecute("<TAG>Sources/Oracle</TAG>",$sql);
Die in diesem Funktionsaufruf verwendete Datenbank muss als Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpoints in Jitterbit Script.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, sind in endpoint usage reporting enthalten und zählen zu Ihrer Lizenz.
Beispiele
Beispiel 1: Aufruf eines gespeicherten Verfahrens 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>endpoint:database/My Oracle Database</TAG>",
"MyStoredProcedure", 0, Input, $output);
// The value of the output parameter can be
// accessed by either $output or Get("output")
Beispiel 2: Aufruf eines gespeicherten Verfahrens 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>endpoint:database/My Oracle Database</TAG>",
"GetValues", $result, Input1, Input2);
Beispiel 3: Aufruf eines gespeicherten Verfahrens, das auf einen Oracle-Objekttyp zugreift
Verwendung von Oracle-Objekt- und Aufzeichnungsarten
Jitterbit unterstützt Oracle-Objekttypen für die Arbeit mit Oracle-Datenbanken bei Verwendung des Oracle JDBC-Treibers. Oracle-Objekttypen sind ähnlich wie Oracle-Aufzeichnungsarten, die in Jitterbit aufgrund mangelnder Unterstützung durch Oracle nicht unterstützt werden.
Warnung
Um Oracle Object Types zu verwenden, müssen Sie den Oracle JDBC-Treiber verwenden. Der Oracle ODBC-Treiber unterstützt weder Oracle Object Types noch Oracle Record Types.
Um Oracle Record Types mit dem Oracle JDBC-Treiber zuzugreifen, können Sie ein "Wrapper"-Stored Procedure in Ihrer Oracle-Datenbank erstellen, das auf einen Oracle Record Type zugreifen und ihn konvertieren kann. Verwenden Sie dann die Funktion CallStoredProcedure
in Jitterbit, um das Wrapper-Verfahren aufzurufen und die Konvertierung zu und von einem Oracle Object Type durchzuführen.
Tipp
Weitere Informationen zu den Unterschieden zwischen 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 der 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 type definitions
Eine Definition eines Oracle Object Type folgt diesem Muster:
CREATE OR REPLACE TYPE example_customer_details AS OBJECT
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);
Eine Definition eines Oracle Record Type folgt diesem Muster:
CREATE TYPE example_customer_details IS RECORD
(status NUMBER
,party_id NUMBER
,account_id VARCHAR
);
Example steps
Schritt 1: Erstellen Sie das Objekt Um Oracle Object Types zu verwenden, erstellen Sie zunächst das Objekt in der Oracle-Datenbank:
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 als Nächstes das Paket als Funktion in der Oracle-Datenbank:
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 Erstellen Sie als Nächstes den Paketkörper als Funktion in der Oracle-Datenbank:
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 Funktion CallStoredProcedure
aufzurufen. Dieses Beispielskript zeigt, wie man ein Objekt an die Funktion CallStoredProcedure
übergibt. Sie können auch Objekte aus einem gespeicherten Verfahren als Rückgabe- oder Ausgabewerte auf ähnliche Weise übergeben.
<trans>
$cust = dict();
$cust["status"] = 1;
$cust["party_id"] = 10;
$cust["account_id"] = "2341";
db = "<TAG>endpoint:database/My Oracle Database</TAG>";
$custout = CallStoredProcedure(db, "EXAMPLE.PROCESSCUSTOMER", "", $cust, "NA0233");
r = "Status: " + $custout["STATUS"] +
" Party ID: " + $custout["PARTY_ID"] +
" Account ID: " + $custout["ACCOUNT_ID"];
WriteToOperationLog("Resulting object: " + r);
</trans>
Hinweis
Im Beispiel erwartet die Funktion processcustomer
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ß- und kleinschreibungsempfindlich und somit in Großbuchstaben. Bei Eingabeobjekten sind die Eigenschaftsnamen nicht groß- und kleinschreibungsempfindlich.
DBCloseConnection
Deklaration
void DBCloseConnection(string databaseId)
Syntax
DBCloseConnection(<databaseId>)
Erforderliche Parameter
databaseId
: Ein String-Verweis auf eine Datenbankverbindung im aktuellen Projekt
Beschreibung
Bestätigt die aktuelle Transaktion und schließt die Datenbankverbindung.
Die in diesem Funktionsaufruf verwendete Datenbank muss als Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Hinweis
Mit dieser Funktion erstellte Endpunkte sind in Berichterstattung über die Endpunktnutzung enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Schließen einer Datenbankverbindung
DBCloseConnection("<TAG>endpoint:database/My Database</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
: Ein String-Verweis auf einen Datenbankverbindungspfad im aktuellen Projektsql
: Der SQL-Befehl, der gegen die Datenbank ausgeführt werden solloutputVariable
: (Zweite Form) Ein Ausgabewert, der den in dem SQL-Befehl zurückgegebenen Feldern zugeordnet ist. 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 undGet()
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) oder0
(wenn keine zurückgegeben wurden).
Die zurückgegebenen Datenwerte sind immer Strings. Binäre Daten werden als ihre hexadezimale String-Darstellung zurückgegeben.
Die in diesem Funktionsaufruf verwendete Datenbank muss als Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpoints in Jitterbit Script.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, sind in endpoint usage reporting 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 Sie einen JDBC-Treiber verwenden, um eine Verbindung zu einer Datenbank herzustellen, setzen Sie
jitterbit.scripting.db.search.rowset
auftrue
, bevor Sie die Funktion aufrufen, 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
undtransaction
) auftrue
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 Werte in einem Array abrufen
// Results of the SQL select as an array
t = "<TAG>endpoint:database/My Database</TAG>";
rows = DBExecute(t, "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 Werte in übergebene referenzierte globale Variablen abrufen
// Results of the SQL select will be in the
// $custName and $custAddr global variables:
t = "<TAG>endpoint:database/My Database</TAG>";
DBExecute(t,
"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 Werte in übergebene benannte globale Variablen abrufen
// Results of the SQL select will be in the
// OrderType and OrderAmount global variables:
t = "<TAG>endpoint:database/My Database</TAG>";
DBExecute(t, "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
: Ein String-Verweis auf einen Pfad zu einer Aktivität, die mit einem Dateityp-Endpunkt im aktuellen Projekt verbunden ist und eine einzelne Datei im CSV-Format darstellttarget
: Ein String-Verweis auf einen Pfad zu einer Datenbankaktivität, die mit einem Datenbank-Endpunkt im aktuellen Projekt verbunden istmode
: Eine Ganzzahl; einer von1
(upsert),2
(einfügen) oder3
(aktualisieren)tablename
: Die Tabelle in der Ziel-DatenbankcolumnNames
: Eine durch Kommas getrennte Liste von SpaltennamencolumnKeynames
: Eine durch Kommas getrennte Liste von Spaltennamen, die den Aktualisierungsschlüssel bilden. Erforderlich, wenn der Modus nicht2
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 z. B. "Date
" in Oracle-DatenbankendatetimeFormat
: Gibt das Format von Datums- und Zeitfeldern an, wie 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 Ziel-Datenbank.
Der Parameter columnKeynames
wird nicht verwendet, wenn nur eingefügt wird (mode=2
) und kann in diesem Fall weggelassen werden.
Quelle und Ziel
Die in diesem Funktionsaufruf verwendete Quelle muss als Aktivität definiert sein, die mit einem Dateityp-Endpunkt im aktuellen Projekt verbunden ist. Dazu gehören konfigurierte File Share-, FTP-, HTTP-, Local Storage- und Temporary Storage-Aktivitäten. Die erste Datei, die aus dieser Quelle zurückgegeben wird, wird verwendet.
Das Ziel, das in diesem Funktionsaufruf verwendet wird, muss als Datenbankaktivität definiert sein, die mit einem Datenbankendpunkt im aktuellen Projekt verknüpft ist.
Für weitere Informationen siehe die Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Warning
Die DBLoad()
-Funktion funktioniert nur bei Datenbankaktivitäten, die mit einem Datenbankendpunkt unter Verwendung eines JDBC-Treibers verknüpft sind.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Using the file returned from the source
// "FTP Files", this example upserts (mode=1)
// into the table "MyTable" on the database
// target "myDatabase". "FTP Files" 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>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>",
"<TAG>activity:database/Database Endpoint/database_insert/myDatabase</TAG>",
1, "MyTable", "ID,Col1,Col2,Col3", "ID", 1);
DBLookup
Deklaration
string DBLookup(string databaseId, string sql)
Syntax
DBLookup(<databaseId>, <sql>)
Erforderliche Parameter
databaseId
: Ein String-Verweis auf eine Datenbankverbindung im aktuellen Projektsql
: 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 ein String. Binärdaten werden als ihre hexadezimale String-Darstellung 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 Datenbankverbindung im aktuellen Projekt definiert sein. Für weitere Informationen siehe die Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Returns the first field of the first result
// from running the SQL query
result = DBLookup("<TAG>endpoint:database/My Database</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
: Ein String-Verweis auf eine Datenbankverbindung im aktuellen Projektsql
: 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 Strings zurückgegeben. Binäre Daten werden als hexadezimale String-Darstellung 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 Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Für komplexere Abfragen, bei denen Sie direkt in globale Variablen abrufen möchten, verwenden Sie die Funktion DBExecute
.
Hinweis
Endpunkte, die mit dieser Funktion erstellt wurden, 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>endpoint:database/My Database</TAG>",
"SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER=1");
DBRollbackTransaction
Deklaration
void DBRollbackTransaction(string databaseId)
Syntax
DBRollbackTransaction(<databaseId>)
Erforderliche Parameter
databaseId
: Ein String-Verweis auf einen Datenbankverbindungspfad im aktuellen Projekt
Beschreibung
Rollback der aktuellen Transaktion und Schließen der Datenbankverbindung.
Die in diesem Funktionsaufruf verwendete Datenbank muss als Datenbankverbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Hinweis
Mit dieser Funktion erstellte Endpunkte sind in Berichterstattung über die Endpunktnutzung enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Rollback der aktuellen Transaktion
DBRollbackTransaction("<TAG>endpoint:database/My Database</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
Mit dieser Funktion erstellte Endpunkte sind in Berichterstattung über die Endpunktnutzung 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
Deklaration
string SQLEscape(string unescapedSQL[, bool escapeBackslash])
Syntax
SQLEscape(<unescapedSQL>[, <escapeBackslash>])
Erforderliche Parameter
unescapedSQL
: Eine SQL-Zeichenkette, die escaped werden soll
Optionale Parameter
escapeBackslash
: Boolean-Flag, das angibt, ob Backslashes ("\
") durch Verdopplung escaped werden sollen; Standard istfalse
Beschreibung
Führt das notwendige Escaping von Literalzeichenfolgen durch, die in einer SQL-Anweisung verwendet werden.
Zeichenfolgen, 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
.
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>endpoint:database/My Database</TAG>",
"SELECT ORDER FROM PO_HEADER WHERE PO_ID=" + Quote(SQLEscape(GUID)));
Unmap
Deklaration
void Unmap()
Syntax
Unmap()
Beschreibung
Für die Verwendung in Zuordnungen setzt diese Funktion ein Datenbankziel-Feld so, dass es als nicht zugeordnet behandelt wird. Der Rückgabewert ist null.
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
Für die Verwendung in Zuordnungen 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 sollte dies auf die Primärschlüssel abgebildet werden, die von der Oracle-Datenbank generiert werden.
Für Datenbanken, die nicht Oracle sind, 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
Für die Verwendung in Zuordnungen mit Nicht-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 sollte dies auf die Primärschlüssel abgebildet werden, 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 anzuzeigen, 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>)