0% ont trouvé ce document utile (0 vote)
67 vues19 pages

Insertion D'une Trame de Données Python Dans Une Table SQL

Transféré par

Hassam
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues19 pages

Insertion D'une Trame de Données Python Dans Une Table SQL

Transféré par

Hassam
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Insertion d’une trame de données

Python dans une table SQL

Prérequis
 SQL Server pour Windows ou pour Linux.

 Azure Data Studio. Pour l’installation, consultez Téléchargez et installez


Azure Data Studio.

 Procédez comme indiqué à la section Exemples de bases de données


AdventureWorks pour restaurer la version OLTP de l’exemple de base de
données AdventureWorks pour votre version de SQL Server.

Vous pouvez vérifier que la base de données a été correctement


restaurée en interrogeant la table [Link] :

USE AdventureWorks;

SELECT * FROM [Link];

Installer des packages Python

1. Dans Azure Data Studio, ouvrez un nouveau notebook et connectez-vous


au noyau Python 3.

2. Sélectionnez Gérer les packages.

3. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter


nouveau.

4. Pour chacun des packages suivants, entrez le nom du package, cliquez


sur Rechercher, puis cliquez sur Installer.

o pyodbc
o pandas
Créer un exemple de fichier CSV

Copiez le texte suivant et enregistrez-le dans un fichier nommé [Link].

DepartmentID,Name,GroupName,

1,Engineering,Research and Development,

2,Tool Design,Research and Development,

3,Sales,Sales and Marketing,

4,Marketing,Sales and Marketing,

5,Purchasing,Inventory Management,

6,Research and Development,Research and Development,

7,Production,Manufacturing,

8,Production Control,Manufacturing,

9,Human Resources,Executive General and Administration,

10,Finance,Executive General and Administration,

11,Information Services,Executive General and Administration,

12,Document Control,Quality Assurance,

13,Quality Assurance,Quality Assurance,

14,Facilities and Maintenance,Executive General and Administration,

15,Shipping and Receiving,Inventory Management,

16,Executive,Executive General and Administration

Créer une table de base de données

1. Procédez comme indiqué à la section Se connecter à un serveur SQL


Server pour vous connecter à la base de données AdventureWorks.

2. Créez une table nommée [Link]. qui sera


utilisée pour l’insertion de la trame de données.

CREATE TABLE [HumanResources].[DepartmentTest](

[DepartmentID] [smallint] NOT NULL,

[Name] [dbo].[Name] NOT NULL,


[GroupName] [dbo].[Name] NOT NULL

GO

Chargez un dataframe à partir du fichier CSV

Utilisez le package Python pandas pour créer un dataframe, chargez le fichier CSV,
puis chargez le dataframe dans la nouvelle table
SQL, [Link].

1. Se connecter au noyau Python 3.

2. Collez le code suivant dans une cellule de code, en mettant à jour le code
avec les valeurs correctes pour server, database, username, password et
l’emplacement du fichier CSV.

import pyodbc

import pandas as pd

# insert data from csv file into dataframe.

# working directory for csv file: type "pwd" in Azure Data Studio or Linux

# working directory in Windows c:\users\username

df = pd.read_csv("c:\\user\\username\[Link]")

# Some other example server values are

# server = 'localhost\sqlexpress' # for a named instance

# server = 'myserver,port' # to specify an alternate port

server = 'yourservername'

database = 'AdventureWorks'

username = 'username'

password = 'yourpassword'

cnxn = [Link]('DRIVER={SQL
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

cursor = [Link]()

# Insert Dataframe into SQL Server:

for index, row in [Link]():


[Link]("INSERT INTO [Link]
(DepartmentID,Name,GroupName) values(?,?,?)", [Link], [Link], [Link])

[Link]()

[Link]()

Confirmer des données dans la base de données

Connectez-vous au noyau SQL et à la base de données AdventureWorks, puis


exécutez l’instruction SQL suivante pour confirmer que la table a été correctement
chargée avec les données issues du dataframe.

SQL

SELECT count(*) from [Link];

Résultats

Bash

(No column name)

16
Création d’histogrammes en Python
 Article
 26/09/2022
 2 minutes de lecture
 9 contributeurs
Commentaires

S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL

Database Azure SQL Managed Instance

Cet article explique comment représenter des données sous forme graphique à l’aide du
package Python Pandas hist(). Une base de données SQL est la source utilisée pour visualiser
les intervalles de données d’histogramme dont les valeurs sont consécutives et ne se
chevauchent pas.

Configuration requise :
 SQL Server pour Windows ou pour Linux.

 Azure Data Studio. Pour l’installer, consultez Azure Data Studio.


 Exemple de restauration de base de données DW pour obtenir les exemples de
données utilisés dans cet article.

Vérification de la base de données restaurée

Vous pouvez vérifier que la base de données restaurée existe en interrogeant la


table [Link] :

SQLCopier
USE AdventureWorksDW;
SELECT * FROM [Link];
Installer des packages Python

Téléchargez et installez Azure Data Studio.

Installez les packages Python suivants :

 pyodbc
 pandas

Pour installer ces packages :


1. Dans votre notebook Azure Data Studio, sélectionnez Gérer les packages.
2. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter nouveau.
3. Pour chacun des packages suivants, entrez le nom du package, cliquez sur Rechercher,
puis cliquez sur Installer.
Création de l’histogramme

Les données distribuées affichées dans l’histogramme s’appuient sur une requête SQL
d’AdventureWorksDW. L’histogramme permet de visualiser les données et la fréquence des
valeurs de données. Modifiez les variables de chaîne de connexion « server », « database »,
« username » et « password » pour la connexion à la base de données SQL.

Pour créer un bloc-notes :

1. Dans Azure Data Studio, sélectionnez Fichier, puis Nouveau notebook.


2. Dans le notebook, sélectionnez le noyau Python3, puis +code.
3. Collez le code dans le notebook, puis sélectionnez Tout exécuter.
PythonCopier
import pyodbc
import pandas as plt
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'servername'
database = 'AdventureWorksDW'
username = 'yourusername'
password = 'databasename'
cnxn = [Link]('DRIVER={SQL
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = [Link]()
sql = "SELECT DATEDIFF(year, [Link], GETDATE()) AS Age FROM [dbo].
[FactInternetSales] s INNER JOIN [Link] c ON [Link] =
[Link]"
df = plt.read_sql(sql, cnxn)
[Link](bins=10)

L’affichage présente la distribution de l’âge des clients dans la table FactInternetSales.


Insertion de données à partir d’une
table SQL dans une trame de données
Python Pandas
 Article
 26/09/2022
 2 minutes de lecture
 8 contributeurs
Commentaires

S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL

Database Azure SQL Managed Instance

Cet article explique comment insérer des données SQL dans une trame de
données Pandas à l’aide du package pyodbc en Python. Les lignes et les colonnes de
données contenues dans la trame de données peuvent être utilisées pour une
exploration plus approfondie des données.

Prérequis
 SQL Server pour Windows ou pour Linux.

 Azure Data Studio. Pour l’installer, consultez Azure Data Studio.

 Exemple de restauration de base de données pour obtenir les exemples


de données utilisés dans cet article.

Vérification de la base de données restaurée

Vous pouvez vérifier que la base de données restaurée existe en interrogeant la


table [Link] :

SQLCopier
USE AdventureWorks;
SELECT * FROM [Link];
Installer des packages Python

Téléchargez et installez Azure Data Studio.

Installez les packages Python suivants :

 pyodbc
 pandas

Pour installer ces packages :

1. Dans votre notebook Azure Data Studio, sélectionnez Gérer les packages.
2. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter nouveau.
3. Pour chacun des packages suivants, entrez le nom du package, cliquez
sur Rechercher, puis cliquez sur Installer.
Insertion des données

Utilisez le script suivant pour sélectionner des données de la table


[Link] et les insérer dans une trame de données. Modifiez les
variables de chaîne de connexion « server », « database », « username » et
« password » pour la connexion à SQL.

Pour créer un bloc-notes :

1. Dans Azure Data Studio, sélectionnez Fichier, puis Nouveau notebook.


2. Dans le notebook, sélectionnez le noyau Python3, puis +code.
3. Collez le code dans le notebook, puis sélectionnez Tout exécuter.
PythonCopier
import pyodbc
import pandas as pd
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'servername'
database = 'AdventureWorks'
username = 'yourusername'
password = 'databasename'
cnxn = [Link]('DRIVER={SQL
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = [Link]()
# select 26 rows from SQL table to insert in dataframe.
query = "SELECT [CountryRegionCode], [Name] FROM [Link];"
df = pd.read_sql(query, cnxn)
print([Link](26))

Sortie

La commande print du script précédent affiche les lignes de données de la trame de


données pandasdf.

textCopier
CountryRegionCode Name
0 AF Afghanistan
1 AL Albania
2 DZ Algeria
3 AS American Samoa
4 AD Andorra
5 AO Angola
6 AI Anguilla
7 AQ Antarctica
8 AG Antigua and Barbuda
9 AR Argentina
10 AM Armenia
11 AW Aruba
12 AU Australia
13 AT Austria
14 AZ Azerbaijan
15 BS Bahamas, The
16 BH Bahrain
17 BD Bangladesh
18 BB Barbados
19 BY Belarus
20 BE Belgium
21 BZ Belize
22 BJ Benin
23 BM Bermuda
24 BT Bhutan
25 BO Bolivia
Insertion d’une trame de données
Python dans une table SQL
 Article
 26/09/2022
 2 minutes de lecture
 8 contributeurs
Commentaires

S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL

Database Azure SQL Managed Instance

Cet article explique comment insérer une trame de données Pandas dans une base de
données SQL à l’aide du package pyodbc en Python.

Prérequis
 SQL Server pour Windows ou pour Linux.

 Azure Data Studio. Pour l’installation, consultez Téléchargez et installez


Azure Data Studio.

 Procédez comme indiqué à la section Exemples de bases de données


AdventureWorks pour restaurer la version OLTP de l’exemple de base de
données AdventureWorks pour votre version de SQL Server.

Vous pouvez vérifier que la base de données a été correctement


restaurée en interrogeant la table [Link] :

SQLCopier
USE AdventureWorks;
SELECT * FROM [Link];
Installer des packages Python

1. Dans Azure Data Studio, ouvrez un nouveau notebook et connectez-vous


au noyau Python 3.

2. Sélectionnez Gérer les packages.


3. Dans le volet Gérer les packages, sélectionnez l’onglet Ajouter
nouveau.

4. Pour chacun des packages suivants, entrez le nom du package, cliquez


sur Rechercher, puis cliquez sur Installer.

o pyodbc
o pandas
Créer un exemple de fichier CSV

Copiez le texte suivant et enregistrez-le dans un fichier nommé [Link].

textCopier
DepartmentID,Name,GroupName,
1,Engineering,Research and Development,
2,Tool Design,Research and Development,
3,Sales,Sales and Marketing,
4,Marketing,Sales and Marketing,
5,Purchasing,Inventory Management,
6,Research and Development,Research and Development,
7,Production,Manufacturing,
8,Production Control,Manufacturing,
9,Human Resources,Executive General and Administration,
10,Finance,Executive General and Administration,
11,Information Services,Executive General and Administration,
12,Document Control,Quality Assurance,
13,Quality Assurance,Quality Assurance,
14,Facilities and Maintenance,Executive General and Administration,
15,Shipping and Receiving,Inventory Management,
16,Executive,Executive General and Administration
Créer une table de base de données

1. Procédez comme indiqué à la section Se connecter à un serveur SQL


Server pour vous connecter à la base de données AdventureWorks.

2. Créez une table nommée [Link]. qui sera


utilisée pour l’insertion de la trame de données.

SQLCopier
CREATE TABLE [HumanResources].[DepartmentTest](
[DepartmentID] [smallint] NOT NULL,
[Name] [dbo].[Name] NOT NULL,
[GroupName] [dbo].[Name] NOT NULL
)
GO
Chargez un dataframe à partir du fichier CSV

Utilisez le package Python pandas pour créer un dataframe, chargez le fichier CSV,
puis chargez le dataframe dans la nouvelle table
SQL, [Link].

1. Se connecter au noyau Python 3.

2. Collez le code suivant dans une cellule de code, en mettant à jour le code
avec les valeurs correctes pour server, database, username, password et
l’emplacement du fichier CSV.

PythonCopier
import pyodbc
import pandas as pd
# insert data from csv file into dataframe.
# working directory for csv file: type "pwd" in Azure Data Studio or
Linux
# working directory in Windows c:\users\username
df = pd.read_csv("c:\\user\\username\[Link]")
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'yourservername'
database = 'AdventureWorks'
username = 'username'
password = 'yourpassword'
cnxn = [Link]('DRIVER={SQL
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='
+ password)
cursor = [Link]()
# Insert Dataframe into SQL Server:
for index, row in [Link]():
[Link]("INSERT INTO [Link]
(DepartmentID,Name,GroupName) values(?,?,?)", [Link],
[Link], [Link])
[Link]()
[Link]()

3. Exécutez la cellule.

Confirmer des données dans la base de données

Connectez-vous au noyau SQL et à la base de données AdventureWorks, puis


exécutez l’instruction SQL suivante pour confirmer que la table a été correctement
chargée avec les données issues du dataframe.

SQLCopier
SELECT count(*) from [Link];
Résultats

BashCopier
(No column name)
16

Utiliser ODBC pour enregistrer et


charger des objets R dans SQL Server
Machine Learning Services
 Article
 26/09/2022
 3 minutes de lecture
 5 contributeurs
Commentaires

S’applique à : SQL Server 2016 (13.x) et versions plus récentes

Découvrez comment utiliser le package RevoScaleR pour stocker des objets R


sérialisés dans une table, puis charger l’objet à partir de la table en fonction des
besoins avec SQL Server Machine Learning Services. Vous pouvez procéder ainsi lors
de l’entraînement et de l’enregistrement d’un modèle, puis l’utiliser ultérieurement à
des fins de scoring ou d’analyse.

Package RevoScaleR

Le package RevoScaleR comprend des fonctions de sérialisation et de désérialisation


qui permettent de stocker des objets R de manière compacte dans SQL Server, puis
de lire les objets à partir de la table. En général, chaque appel de fonction est
modélisé d’après un magasin de valeurs de clés simple, dans lequel la clé est le nom
de l’objet et la valeur associée à la clé est l’objet varbinary R à déplacer dans ou hors
d’une table.

Pour enregistrer des objets R dans SQL Server directement à partir d’un
environnement R, vous devez :

 Établir une connexion à SQL Server à l’aide de la source de


données RxOdbcData
 Appeler les nouvelles fonctions via la connexion ODBC
 Spécifier que l’objet ne soit pas sérialisé (facultatif), puis choisir un nouvel
algorithme de compression à utiliser à la place de l’algorithme de compression
par défaut

Par défaut, tout objet que vous appelez à partir de R pour passer à SQL Server est
sérialisé et compressé. Inversement, quand vous chargez un objet à partir d’une table
SQL Server pour l’utiliser dans votre code R, l’objet est désérialisé et décompressé.

Liste des nouvelles fonctions

 écrit un objet R dans SQL Server à l’aide de la source de


rxWriteObject
données ODBC.

 rxReadObject lit un objet R à partir d’une base de données SQL Server, à


l’aide d’une source de données ODBC.

 rxDeleteObject supprime un objet R de la base de données SQL Server


spécifiée dans la source de données ODBC. Si plusieurs objets sont
identifiés par la combinaison clé/version, ils sont tous supprimés.

 rxListKeys énumère comme paires clé-valeur tous les objets disponibles.


Cela vous permet de déterminer les noms et les versions des objets R.

Pour obtenir des informations détaillées sur la syntaxe de chaque fonction, utilisez
l’aide de R. Les détails sont également disponibles dans la référence ScaleR.

Guide pratique pour stocker des objets R dans SQL Server à l’aide d’ODBC

Cette procédure illustre comment utiliser les nouvelles fonctions pour créer un
modèle et l’enregistrer dans SQL Server.

1. Configurez la chaîne de connexion pour SQL Server.

RCopier
conStr <- 'Driver={SQL
Server};Server=localhost;Database=storedb;Trusted_Connection=true'

2. Créez un objet de source de données rxOdbcData dans R à l’aide de la


chaîne de connexion.

RCopier
ds <- RxOdbcData(table="robjects", connectionString=conStr)

3. Supprimez la table si elle existe déjà et que vous ne souhaitez pas


effectuer le suivi des anciennes versions des objets.
RCopier
if(rxSqlServerTableExists(ds@table, ds@connectionString)) {
rxSqlServerDropTable(ds@table, ds@connectionString)
}

4. Définissez une table qui peut être utilisée pour stocker des objets
binaires.

RCopier
ddl <- paste(" CREATE TABLE [", ds@table, "]
("," [id] varchar(200) NOT NULL,
"," [value] varbinary(max),
"," CONSTRAINT unique_id UNIQUE (id))",
sep = "")

5. Ouvrez la connexion ODBC pour créer la table puis, quand l’instruction


DDL est terminée, fermez la connexion.

RCopier
rxOpen(ds, "w")
rxExecuteSQLDDL(ds, ddl)
rxClose(ds)

6. Générez les objets R que vous souhaitez stocker.

RCopier
infertLogit <- rxLogit(case ~ age + parity + education + spontaneous +
induced,
data = infert)

7. Utilisez l’objet RxOdbcData créé précédemment pour enregistrer le


modèle dans la base de données.

RCopier
rxWriteObject(ds, "[Link]", infertLogit)
Guide pratique pour lire des objets R à partir de SQL Server à l’aide d’ODBC

Cette procédure illustre comment utiliser les nouvelles fonctions pour charger un
modèle à partir de SQL Server.

1. Configurez la chaîne de connexion pour SQL Server.

RCopier
conStr2 <- 'Driver={SQL
Server};Server=localhost;Database=storedb;Trusted_Connection=true'
2. Créez un objet de source de données rxOdbcData dans R à l’aide de la
chaîne de connexion.

RCopier
ds <- RxOdbcData(table="robjects", connectionString=conStr2)

3. Lisez le modèle à partir de la table en spécifiant son nom d’objet R.

RCopier
infertLogit2 <- rxReadObject(ds, "[Link]")

réation de plusieurs modèles à l’aide de


rxExecBy
 Article
 26/09/2022
 3 minutes de lecture
 4 contributeurs
Commentaires

S’applique à : SQL Server 2016 (13.x) et versions plus récentes

Découvrez comment utiliser la fonction rxExecBy dans RevoScaleR pour traiter en


parallèle plusieurs modèles associés avec SQL Server Machine Learning Services. Au
lieu d’effectuer l’entraînement d’un unique modèle volumineux basé sur des données
provenant de plusieurs entités similaires, vous pouvez créer rapidement de nombreux
modèles associés, chacun utilisant des données propres à une entité unique.

Ce que rxExecBy peut faire

Par exemple, imaginons que vous surveilliez les défaillances des appareils, en
capturant les données issues de nombreux types d’équipement différents. À l’aide de
rxExecBy, vous pouvez fournir en entrée un unique jeu de données volumineux,
spécifier une colonne sur laquelle doit s’effectuer la stratification du jeu de données,
comme le type d’appareil, puis créer plusieurs modèles pour des appareils
individuels.
Ce cas d’usage est qualifié d’« agréablement parallèle », car il divise un problème
complexe important en parties de composant pour un traitement simultané.

Les applications typiques de cette approche incluent les prévisions pour le compteur
connecté d’un ménage, la prévision du chiffre d’affaires pour des gammes de
produits distinctes ou la création de modèles pour l’approbation de prêts adaptés à
chaque filiale d’une banque.

Fonctionnement de rxExecBy

La fonction rxExecBy dans RevoScaleR est conçue pour un traitement parallèle de


gros volumes sur un grand nombre de petits jeux de données.

1. Vous pouvez appeler la fonction rxExecBy dans le cadre de votre code R et vous
transmettez alors un jeu de données non ordonnées.
2. Spécifiez la partition selon laquelle les données doivent être regroupées et
triées.
3. Définissez la fonction de transformation ou de modélisation à appliquer à
chaque partition de données
4. Lorsque la fonction s’exécute, les requêtes de données sont traitées en parallèle
si votre environnement prend en charge ce type de traitement. En outre, les
tâches de modélisation ou de transformation sont distribuées entre les cœurs
individuels et exécutées en parallèle. Les contextes de calcul pris en charge pour
ces opérations incluent RxSpark et RxInSQLServer.
5. Plusieurs résultats sont retournés.
Syntaxe de rxExecBy et exemples

rxExecBy prend quatre entrées, l’une d’elles étant un jeu de données ou un objet
source de données qui peut être partitionné sur une colonne clé spécifiée. La
fonction retourne une sortie pour chaque partition. La forme de la sortie dépend de
la fonction qui est transmise comme argument. Par exemple, si vous transmettez une
fonction de modélisation telle que rxLinMod, vous pouvez retourner un modèle
entraîné distinct pour chaque partition du jeu de données.

Fonctions prises en charge

Modélisation : rxLinMod, rxLogit, rxGlm, rxDtree

Scoring : rxPredict

Transformation ou analyse : rxCovCor


Exemple

L’exemple suivant montre comment créer plusieurs modèles à l’aide du jeu de


données Airline, partitionné dans la colonne [DayOfWeek]. La fonction définie par
l’utilisateur delayFunc, est appliquée à chacune des partitions en appelant rxExecBy. La
fonction crée des modèles distincts pour les lundis, les mardis, etc.

SQLCopier
EXEC sp_execute_external_script
@language = N'R'
, @script = N'
delayFunc <- function(key, data, params) {
df <- rxImport(inData = airlineData)
rxLinMod(ArrDelay ~ CRSDepTime, data = df)
}
OutputDataSet <- rxExecBy(airlineData, c("DayOfWeek"), delayFunc)
'
, @input_data_1 = N'select ArrDelay, DayOfWeek, CRSDepTime from AirlineDemoSmall]'
, @input_data_1_name = N'airlineData'

Si vous recevez l’erreur varsToPartition is invalid, vérifiez si le nom de la ou des


colonnes clés est entré correctement. Le langage R respecte la casse.

Cet exemple spécifique n’est pas optimisé pour SQL Server, et vous pouvez, dans de
nombreux cas, obtenir de meilleures performances en utilisant SQL pour regrouper
les données. Toutefois, à l’aide de rxExecBy, vous pouvez créer des travaux parallèles
à partir de R.

L’exemple suivant illustre le processus dans R, en utilisant SQL Server comme


contexte de calcul :

RCopier
sqlServerConnString <- "SERVER=hostname;DATABASE=TestDB;UID=DBUser;PWD=Password;"
inTable <- paste("airlinedemosmall")
sqlServerDataDS <- RxSqlServerData(table = inTable, connectionString =
sqlServerConnString)

# user function
".Count" <- function(keys, data, params)
{
myDF <- rxImport(inData = data)
return (nrow(myDF))
}

# Set SQL Server compute context with level of parallelism = 2


sqlServerCC <- RxInSqlServer(connectionString = sqlServerConnString, numTasks = 4)
rxSetComputeContext(sqlServerCC)

# Execute rxExecBy in SQL Server compute context


sqlServerCCResults <- rxExecBy(inData = sqlServerDataDS, keys = c("DayOfWeek"),
func =

Vous aimerez peut-être aussi