Esegui lettore SQL
Esegue un'istruzione SQL contro una connessione con un database e restituisce una tabella dati e il relativo numero di colonne e righe.
Disponibilità del comando: IBM RPA SaaS e IBM RPA on premise
Sintassi di script
Il linguaggio di script proprietario di IBM RPAha una sintassi simile ad altri linguaggi di programmazione. La sintassi dello script definisce la sintassi del comando nel file script. È possibile utilizzare questa sintassi in modalità IBM RPA Studio Script .
sqlExecuteReader --connection(DbConnection) --statement(String) [--timeout(TimeSpan)] (DataTable)=value (Numeric)=rows (Numeric)=columns
Dipendenze
È necessario creare una connessione al database con una stringa di connessione valida. Utilizzare i seguenti comandi in base al sistema di gestione del database (DBMS) utilizzato:
Parametro di input
La seguente tabella visualizza l'elenco dei parametri di input disponibili in questo comando. Nella tabella, è possibile vedere il nome del parametro quando si utilizza la modalità di script di IBM RPA Studioe la relativa etichetta equivalente della modalità Designer.
| Etichetta modalità designer | Nome modalità script | Obbligatorio | Tipi variabili accettati | Descrizione |
|---|---|---|---|---|
| Connessione | connection |
Required |
Database Connection |
Variabile di connessione al database. |
| Istruzione | statement |
Required |
Text |
L'istruzione SQL. Scrivi l'istruzione in base alla sintassi SQL nel DBMS che si utilizza. |
| Supero tempo | timeout |
Optional |
Time Span, Number, Text |
Il tempo massimo di attesa per eseguire il comando. Il timeout predefinito è 5 secondi (5000 o 00:00:05).Per i dettagli, consultare il parametro timeout . |
Il parametro timeout
È possibile definire il timeout immettendo una rappresentazione String in millisecondi o una rappresentazione Time span . Ad esempio:
Stringrappresentazione:50000(cinquanta secondi)Time spanrappresentazione:2.05:20:10.001(due giorni, cinque ore, venti minuti, dieci secondi e un millisecondo)
Per queste rappresentazioni, IBM RPA Studio le arrotonda al valore in secondi più vicino. Ad esempio:
1001i millisecondi sono00:00:01.001e arrotonda a00:00:0260020i millisecondi sono00:01:00.020e arrotonda a00:01:01
I seguenti sistemi di database impostano il timeout su illimitato se si imposta il valore su zero, il che significa che il comando attende indefinitamente per essere eseguito:
- Database connessi tramite ODBC
- Oracle™
- SQL Server®
- SQLite®
Alcuni sistemi di database utilizzano i timeout per stimarne il tempo di esecuzione. Per le eccezioni del limite di timeout, è possibile impostare il timeout su zero o aggiungere timeout maggiori.
Parametro di output
| Etichetta modalità designer | Nome modalità script | Tipi variabili accettati | Descrizione |
|---|---|---|---|
| Tabella dati | value |
Data Table |
Restituisce l'oggetto della tabella dati dell'istruzione. |
| Righe | rows |
Number |
Restituisce il numero di righe nella tabella dati. |
| Colonne | columns |
Number |
Restituisce il numero di colonne nella tabella dati. |
Esempio
Il seguente esempio di codice illustra come eseguire la query SELECT in un database per restituirne i valori. Considerare un file di database vuoto denominato sample.db. Prima di ottenere i valori della tabella dati, il comando Esegui comando SQL crea una tabella e vi inserisce i valori.
defVar --name dbConnection --type DbConnection
defVar --name dataTable --type DataTable
defVar --name rows --type Numeric
defVar --name columns --type Numeric
defVar --name pathMyDocuments --type String
defVar --name databaseFile --type String
// Gets the My Documents folder path.
getSpecialFolder --folder "MyDocuments" pathMyDocuments=value
// Assigns the 'sample.db' folder path to the 'databaseFile' variable.
setVar --name "${databaseFile}" --value "${pathMyDocuments}\\sample.db"
// Connects to the database management system (DBMS). You must provide a valid connection string to connect with the database before you run this example.
sqliteConnect --connectionString "Data Source=${databaseFile};Version=3;UseUTF16Encoding=True;" dbConnection=connection
// Creates one table and inserts sample values to it.
sqlExecute --connection ${dbConnection} --statement "CREATE TABLE sample_table(\r\n sample_column TEXT,\r\n identifier INTEGER,\r\n PRIMARY KEY(\"identifier\" AUTOINCREMENT)\r\n);\r\n\r\nINSERT INTO sample_table (sample_column) VALUES (\'First text value\');\r\nINSERT INTO sample_table ( sample_column) VALUES (\'Second text value\');\r\n" --timeout "3.11:20:00"
// Runs a SELECT query of the table previously created.
sqlExecuteReader --connection ${dbConnection} --statement "select * from sample_table;" dataTable=value rows=rows columns=columns
// Logs the data table values and its number of columns and rows.
logMessage --message "Data Table: ${dataTable}\r\nColumns: ${columns}\r\nRows: ${rows}" --type "Info"
// Ends the connection with the database.
sqlDisconnect --connection ${dbConnection}