SQL-datahantering sql-data-management
Med aktiviteten SQL Data Management kan du skriva egna SQL-skript för att skapa och fylla i arbetsregister.
Förhandskrav prerequisites
Innan du konfigurerar aktiviteten bör du kontrollera att följande krav är uppfyllda:
- Aktiviteten är endast tillgänglig för fjärrdatakällor.
- Det utgående schemat måste finnas i databasen och vara länkat till en FDA-databas.
Konfigurera SQL Data Management-aktiviteten configuring-the-sql-data-management-activity
-
Ange aktiviteten Label.
-
Markera External account som ska användas och markera sedan Outbound schema som är länkad till det här externa kontot.
note caution CAUTION Det utgående schemat är fast och kan inte redigeras. -
Lägg till SQL-skriptet.
note caution CAUTION Det är SQL-skriptets skrivares ansvar att se till att SQL-skriptet fungerar och att dess referenser (fältnamn, etc.) är i enlighet med utgående schema. Om du vill läsa in en befintlig SQL-kod väljer du alternativet The SQL script is contained in an entity stored in the database. SQL-skript måste skapas och lagras på menyn Administration / Configuration / SQL scripts .
I annat fall skriver eller kopierar och klistrar du in SQL-skriptet i det dedikerade området.
Med aktiviteten kan du använda följande variabler i skriptet:
-
activity.tableName: SQL-namn för utgående arbetstabell.
-
task.inkommandeTransitionByName('name').tableName: SQL-namnet på arbetstabellen som medföljer den inkommande övergången som ska användas (övergången identifieras med sitt namn).
note note NOTE Värdet ('name') motsvarar fältet Name i övergångsegenskaperna.
-
-
Om SQL-skriptet redan innehåller kommandon för att skapa en utgående arbetstabell avmarkerar du alternativet Automatically create work table. I annat fall skapas en arbetstabell automatiskt när arbetsflödet körs.
-
Klicka på Ok för att bekräfta aktivitetskonfigurationen.
Aktiviteten är nu konfigurerad. Den är klar att köras i arbetsflödet.
SQL-skriptexempel sql-script-samples
Med skriptet nedan kan du skapa en arbetstabell och infoga data i samma arbetstabell:
CREATE UNLOGGED TABLE <%= activity.tableName %> (
iRecipientId INTEGER DEFAULT 0,
sFirstName VARCHAR(100),
sMiddleName VARCHAR(100),
sLastName VARCHAR(100),
sEmail VARCHAR(100)
);
INSERT INTO <%= activity.tableName %>
SELECT iRecipientId, sFirstName, sMiddleName, sLastName, sEmail
FROM nmsRecipient
GROUP BY iRecipientId, sFirstName, sMiddleName, sLastName, sEmail;
Nedan kan du utföra en CTAS-åtgärd (CREATE TABLE AS SELECT) och skapa ett arbetstabellindex:
CREATE TABLE <%= activity.tableName %>
AS SELECT iRecipientId, sEmail, sFirstName, sLastName, sMiddleName
FROM nmsRecipient
WHERE sEmail IS NOT NULL
GROUP BY iRecipientId, sEmail, sFirstName, sLastName, sMiddleName;
CREATE INDEX ON <%= activity.tableName %> (sEmail);
ANALYZE <%= activity.tableName %> (sEmail);
Nedanför skript kan du sammanfoga två arbetsregister:
CREATE TABLE <%= activity.tableName %>
AS SELECT i1.sFirstName, i1.sLastName, i2.sEmail
FROM <%= task.incomingTransitionByName('input1').tableName %> i1
JOIN <%= task.incomingTransitionByName('input2').tableName %> i2 ON (i1.id = i2.id)