#-----Initier une connexion à l'instance SQL Server 
#-----Attention sous Powershell 7 il faut activer TCP/IP
$sqlinstance = "<OXADWDB_HOST>"
$DatabaseName = "<OXADWDB_DATABASE>"
$username = '<OXADWDB_USER>'
$password = '<OXADWDB_PASSWORD>'
$CsvPath=

$password_secured = ConvertTo-SecureString $password -AsPlainText -Force

# Créer l'objet PSCredential
$credential = New-Object System.Management.Automation.PSCredential($username, $password_secured)

Set-DbatoolsInsecureConnection
$MyConnection = Connect-DbaInstance -SqlInstance $sqlinstance -SqlCredential $credential #-TrustServerCertificate 


#------------Creation dir %oxadata%tmp\OXAETL_export_tables_to_csv\
New-Item -Path $CsvPath  -ItemType Directory -Force

#-----Récupérer la liste des tables dans la base de données 
$Tables = Get-DbaDbTable -SqlInstance $MyConnection -Database $DatabaseName 

#-----Itérer à travers la liste des tables pour les exporter 
foreach ($Table in $Tables) { 
    #----- Construire le chemin du fichier CSV 
    $CsvPath2 = $CsvPath + $Table.Name + ".csv" 
    Write-Host $CsvPath2 

    if ($Table.Name -notlike "PAR_*") {
        #-----Exécuter la requête et exporter les résultats vers un fichier CSV 
        Invoke-DbaQuery -SqlInstance $MyConnection -Database $DatabaseName -Query "SELECT * FROM $($Table.Schema).$($Table.Name);" | Export-Csv -Path $CsvPath2 -Delimiter ";" -NoTypeInformation -Encoding unicode -UseQuotes AsNeeded
    }
} 

#-------------------zip dir %oxadata%tmp\OXAETL_export_tables_to_csv\
Compress-Archive -Path $CsvPath -DestinationPath %oxadata%tmp\OXADWDB_export_tables_to_csv.zip -Force
Copy-Item -Path %oxadata%tmp\OXADWDB_export_tables_to_csv.zip -Destination %oxadata%interfaces\exports\ -Force



