Question
Scripter un accès SQL + extraire le résultat en .c
- Anthony T.
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 43
- Remerciements reçus 0
il y a 10 ans 1 mois #21499
par Anthony T.
Scripter un accès SQL + extraire le résultat en .c a été créé par Anthony T.
Bonjour,
Ce thème a surement était déjà affronté sur ce forum, ou peut être pas, mais je cherche une solution pour automatiser mes activités d'extraction sur la base via powershell.
Il s'agit d'automatiser temporairement des requêtes SQL le temps que cela soit industrialiser correctement.
Je me connecte à une base ORACLE depuis sqldeveloper actuellement pour faire ces extractions.
Lorsque que j'exécute mon script PS1 j'obtiens le message :
Exception lors de l'appel de \"fill\" avec \"1\" argument(s) : \"une erreur liée au réseau ou spécifique à'linstance s'est produites lors de l'établissement d'une connexion à SQL Server. Le serveur est ou n'est pas accessible...
Voici le code :
[code:1]#Les requêtes SQL
Function Sql_Query([string] $sqServer, [string] $sqBase, [string] $sqQuery)
{
#Etablit la connexion avec la base SQL.
$Connection = New-Object System.Data.SqlClient.SqlConnection
$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; uid=$user; pwd=$pwd; Integrated Security=False;\"
#Crée une commande SQL.
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandTimeout = 30
$sqlCmd.CommandText = $sqQuery
$sqlCmd.Connection = $Connection
#Exécute et récupère le résultat.
$DataSet = New-Object System.Data.DataSet
$Adapter = New-Object System.Data.SqlClient.SqlDataAdapter
$Adapter.SelectCommand = $sqlCmd
$Adapter.Fill($DataSet)
#Ferme la connexion avec la base SQL.
$Connection.Close()
#Renvoie le résultat.
return $DataSet.Tables[0]
}
#Paramètres de connexion.
$SQLSERVER = \"10.82.161.3\"
$SQLBASE = \"K2LREC63\"
$user = \"utenza\"
$pwd = \"mypw\"
# Recherche du nom de poste dans la BD
$sqlQuery = \"select * from tiers WHERE nif = 'CVLMRZ71T12M102A'\" #Récupération d'information
#Exécute la requête.
$rtn = Sql_Query $SQLSERVER $SQLBASE $sqlQuery
foreach ($row in $rtn)
{
if ($row -eq \"True\"«»)
{
write-host \"reply\"
}
}
[/code:1]
Alors je me suis dis, est ce possible de manager dans powershell le client sqldeveloper afin d'exécuté depuis ce client mes extractions ?
Ou bien les objets utilisés ne sont pas les bon pour oracle ?
Merci.
Message édité par: insqnz, à: 12/02/16 15:18
Message édité par: insqnz, à: 12/02/16 15:19<br><br>Message édité par: insqnz, à: 12/02/16 15:21
Ce thème a surement était déjà affronté sur ce forum, ou peut être pas, mais je cherche une solution pour automatiser mes activités d'extraction sur la base via powershell.
Il s'agit d'automatiser temporairement des requêtes SQL le temps que cela soit industrialiser correctement.
Je me connecte à une base ORACLE depuis sqldeveloper actuellement pour faire ces extractions.
Lorsque que j'exécute mon script PS1 j'obtiens le message :
Exception lors de l'appel de \"fill\" avec \"1\" argument(s) : \"une erreur liée au réseau ou spécifique à'linstance s'est produites lors de l'établissement d'une connexion à SQL Server. Le serveur est ou n'est pas accessible...
Voici le code :
[code:1]#Les requêtes SQL
Function Sql_Query([string] $sqServer, [string] $sqBase, [string] $sqQuery)
{
#Etablit la connexion avec la base SQL.
$Connection = New-Object System.Data.SqlClient.SqlConnection
$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; uid=$user; pwd=$pwd; Integrated Security=False;\"
#Crée une commande SQL.
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandTimeout = 30
$sqlCmd.CommandText = $sqQuery
$sqlCmd.Connection = $Connection
#Exécute et récupère le résultat.
$DataSet = New-Object System.Data.DataSet
$Adapter = New-Object System.Data.SqlClient.SqlDataAdapter
$Adapter.SelectCommand = $sqlCmd
$Adapter.Fill($DataSet)
#Ferme la connexion avec la base SQL.
$Connection.Close()
#Renvoie le résultat.
return $DataSet.Tables[0]
}
#Paramètres de connexion.
$SQLSERVER = \"10.82.161.3\"
$SQLBASE = \"K2LREC63\"
$user = \"utenza\"
$pwd = \"mypw\"
# Recherche du nom de poste dans la BD
$sqlQuery = \"select * from tiers WHERE nif = 'CVLMRZ71T12M102A'\" #Récupération d'information
#Exécute la requête.
$rtn = Sql_Query $SQLSERVER $SQLBASE $sqlQuery
foreach ($row in $rtn)
{
if ($row -eq \"True\"«»)
{
write-host \"reply\"
}
}
[/code:1]
Alors je me suis dis, est ce possible de manager dans powershell le client sqldeveloper afin d'exécuté depuis ce client mes extractions ?
Ou bien les objets utilisés ne sont pas les bon pour oracle ?
Merci.
Message édité par: insqnz, à: 12/02/16 15:18
Message édité par: insqnz, à: 12/02/16 15:19<br><br>Message édité par: insqnz, à: 12/02/16 15:21
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 1 mois #21500
par Philippe
Réponse de Philippe sur le sujet Re:Scripter un accès SQL
salut insqnz
il te manque :
[code:1]$Connection.Open()[/code:1]
juste apres :
[code:1]$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; uid=$user; pwd=$pwd; Integrated Security=False;\"
[/code:1]
bon week end
il te manque :
[code:1]$Connection.Open()[/code:1]
juste apres :
[code:1]$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; uid=$user; pwd=$pwd; Integrated Security=False;\"
[/code:1]
bon week end
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.088 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Scripter un accès SQL + extraire le résultat en .c