Idée Connection Oracle et remontée Infos

Plus d'informations
il y a 13 ans 3 mois #13913 par Franck Lagrue
Bonjour,

j'ai récupéré et adapté un code pour me connecter à une base Oracle, qui fonctionne.

Ce que je veux, c'est remonter 2 valeurs situées dans 2 tables différentes.
le but étant ensuite de définir un nombre par soustraction :

Nb emplacement libre = 10000 - (select count(*) from table 1 - select count(*) from table 2)

ce que je pensais faire, c'est récupérer les count(*) soit dans 2 variables, soit dans un tableau que je lirai.


j'ai plusieurs questions sur le code :

1- les if ne me retourne pas les messages prévus par le write-host... => pas grave, mais pour ma culture

2- le retour en console ne me convient pas, je voudrais récupérer la valeur numérique de mon [code:1]select count(*)[/code:1], dans une variable ou un tableau pour pouvoir faire un calcul.



[code:1]
#
# FONCTIONS ORACLES
#
function Get-OracleTable($TABLE_NAME){

Write-verbose \">> Déclaration des variables\"
#
# VARIABLES LOCALES
#
$OracleUser=\"toto\"
$OraclePassword=\"titi\"
$DataSource=\"tata\"
$Table=$TABLE_NAME
$OracleDLL=\"D:\oracle\product\10.2.0\client_1\BIN\Oracle.DataAccess.dll\"
$queryString = \"SELECT count(*) FROM $Table\"
$connectionString= \"Data Source=$DataSource;User Id=$OracleUser;Password=$OraclePassword;Integrated Security=no\"
$Export_Table_Content=\"D:\DATA\Tests\RepFin\$TABLE_NAME.csv\"

#
# PROGRAMME
#

if(test-path $Export_Table_Content){Remove-item $Export_Table_Content}

# Load the ODP assembly
$LoadAssemblyResult=[System.Reflection.Assembly]::LoadWithPartialName(\"System.Data.OracleClient\"«»)

if(($LoadAssemblyResult -ne $null)-AND ($LoadAssemblyResult.GlobalAssemblyCache) ){
Write-Verbose \">> Chargement du module Oracle : OK\"
}
else {
write-host \">> Chargement du module Oracle : KO\"
}

$set = New-Object System.Data.DataSet


$connection = New-Object System.Data.OracleClient.OracleConnection($connectionString)
$connection.open()


If($Connection.State -eq \"Open\"«»){
Write-verbose \">> Connexion à la table $Table : OK\"
}
else {
Write-host \">> Connexion à la table $Table : KO\"
#exit
}
$adapter = New-object System.Data.OracleClient.OracleDataAdapter($queryString, $connection)
$adapter.Fill($set)


if(($set -ne $null)-AND($Set.tables[0] -ne $null )){
# Export de la structure en CSV
# Write-verbose (\">> NOMBRE D'ENTREES RECUPEREES DANS ORACLE : \" + ($set.tables[0]).count)
return ($set.tables[0])
}

}
[/code:1]

merci de votre aide par avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 mois #14010 par Franck Lagrue
Personne ?
:dry:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 mois #14019 par SiSMik
Salut,

Désolé j'ai pas de serveurs Oracle sous la main :(

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 mois #14020 par Matthew BETTON
Bonsoir GeekAlf,

les if ne me retourne pas les messages prévus par le write-host.


Désolé, je n'ai pas compris ta question :unsure:

Je n'ai pas d'expérience sur Oracle et pas ce qu'il faut sous la main pour t'aider.

' System.Data.OracleClient ' est obsolète : \"This types in System.Data.OracleClient are deprecated and will be removed in a future version of the .NET Framework. For more information, see Oracle and ADO.NET.\"

Tu peux lire cet article très intéressant de Klaus Schulte sur le 'Hey, Scripting Guy! Blog' :

Use Oracle ODP.NET and PowerShell to Simplify Data Access

Enfin, si ton retour ne te convient pas, à priori il faut regarder ici :

[code:1]return ($set.tables[0]) [/code:1]

Et voir ce qu'un

[code:1]$set.tables[0] | Get-Member[/code:1]

te fourni comme méthodes et propriétés.

@ +

Matthew

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 mois #14021 par Matthew BETTON
benduru écrit:

Salut,

Désolé j'ai pas de serveurs Oracle sous la main :(


Bonsoir Fabien ;)

La même :P

:laugh:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #14036 par Franck Lagrue
bonjour Matthew, je vais regarder ça merci.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena