Outils pour utilisateurs

Outils du site


bloc_note

Ceci est une ancienne révision du document !


Bloc Note rapide

$LOG = "/traces/pre_lanceur.log"

function mk_extract_sql {
    param (
        [string]$ORACLE_SID,
        [string]$FILEOUT
    )
    
    $sqlContent = @"
SET LINESIZE 1000
SET TRIMSPOOL ON
SET TRIMOUT ON
SET TERMOUT OFF
SET PAGESIZE 0
SET WRAP OFF
SET ECHO OFF
COL PRODUIT FORMAT A15
COL APPLICATION FORMAT A15
spool $FILEOUT
alter SESSION set NLS_DATE_FORMAT = 'dd-MON-yyyy';
select PRODUIT, APPLICATION, VERSION_SERVEUR, NVL(VERSION_IHM_BACKUP,'null'), VERSION_IHM_COURANTE, NVL(VERSION_IHM_BETA,'null'), DATE_MAJ from LANCEUR.T_VERSIONS_IHM;
exit;
"@

    Set-Content -Path "/tmp/tmp_sql.sql" -Value $sqlContent

    Add-Content -Path $LOG -Value "---     selection des version en BD (/tmp/tmp_sql.sql)"
    Get-Content -Path "/tmp/tmp_sql.sql" | Add-Content -Path $LOG

    # Adaptation nécessaire pour l'exécution de sqlplus via PowerShell
    Start-Process -FilePath "sqlplus" -ArgumentList "-s / as sysdba @/tmp/tmp_sql.sql" -NoNewWindow -Wait

    (Get-Content $FILEOUT) -replace '\s\s+', '|' | Set-Content $FILEOUT
    Remove-Item "/tmp/tmp_sql.sql"
}

function get_version_serveur_active {
    param (
        [string]$ORACLE_SID
    )
    
    $sqlContent = @"
SET LINESIZE 1000
SET TRIMSPOOL ON
SET TRIMOUT ON
SET TERMOUT OFF
SET PAGESIZE 0
SET WRAP OFF
SET ECHO OFF
COL VERSION_SERVEUR 
spool /tmp/VERSION_SERVEUR_INSTALLEE.txt
select VERSION_SERVEUR from $USERBD.T_VERSIONS_IHM_COMPATIBLES;
exit;
"@

    Set-Content -Path "/tmp/tmp_sql.sql" -Value $sqlContent

    Add-Content -Path $LOG -Value "---     selection des version en BD (/tmp/tmp_sql.sql)"
    Get-Content -Path "/tmp/tmp_sql.sql" | Add-Content -Path $LOG

    Start-Process -FilePath "sqlplus" -ArgumentList "-s / as sysdba @/tmp/tmp_sql.sql" -NoNewWindow -Wait

    (Get-Content "/tmp/VERSION_SERVEUR_INSTALLEE.txt") -replace '\s\s+', '|' | Set-Content "/tmp/VERSION_SERVEUR_INSTALLEE.txt"
    Get-Content "/tmp/VERSION_SERVEUR_INSTALLEE.txt"
    Remove-Item "/tmp/VERSION_SERVEUR_INSTALLEE.txt"
    Remove-Item "/tmp/tmp_sql.sql"
}

function get_t_version_ihm {
    param (
        [string]$ORACLE_SID,
        [string]$APPLICATION
    )

    $OUTFILE = "/tmp/tmp_t_ihm_version.tmp"
    mk_extract_sql -ORACLE_SID $ORACLE_SID -FILEOUT $OUTFILE

    Get-Content $OUTFILE | ForEach-Object {
        $fields = $_ -split '\|'
        $PRODUIT = $fields[0]
        $APPLICATION = $fields[1]
        $VERSION_SERVEUR = $fields[2]
        $VERSION_IHM_BACKUP = $fields[3]
        $VERSION_IHM_COURANTE = $fields[4]
        $VERSION_IHM_BETA = $fields[5]
        $DATE_MAJ = $fields[6]

        if ($ORACLE_SID -and $PRODUIT -and $APPLICATION -and $VERSION_SERVEUR -and $VERSION_IHM_BACKUP -and $VERSION_IHM_COURANTE -and $VERSION_IHM_BETA) {
            $global:POST += "&t_version_ihm[]=$ORACLE_SID:$PRODUIT:$APPLICATION:$VERSION_SERVEUR:$VERSION_IHM_BACKUP:$VERSION_IHM_COURANTE:$VERSION_IHM_BETA:$DATE_MAJ"
            Add-Content -Path "/tmp/ALL_VERSION_IHM.txt" -Value $VERSION_IHM_BACKUP
            Add-Content -Path "/tmp/ALL_VERSION_IHM.txt" -Value $VERSION_IHM_COURANTE
            Add-Content -Path "/tmp/ALL_VERSION_IHM.txt" -Value $VERSION_IHM_BETA
        }
    }

    Add-Content -Path $LOG -Value " --- Fichier $OUTFILE ---"
    Get-Content -Path $OUTFILE | Add-Content -Path $LOG
    Add-Content -Path $LOG -Value "---   --- FIN ---`n"

    Remove-Item $OUTFILE
}

function valide_t_version_ihm {
    param (
        [string]$ORACLE_SID
    )

    Write-Host "$GREY - Validation du schema lanceur ($ORACLE_SID) $NORM"

    $sqlContent = @"
SET WRAP OFF;
set underline off;
set heading off;
spool /tmp/out1.sql;
select count(DIRECTORY_NAME) from all_directories where DIRECTORY_NAME='LANCEUR_DEPOT_VERSIONS';
spool off;
spool /tmp/out2.sql;
select count(*) from all_tables where OWNER='LANCEUR';
spool off;
spool /tmp/out3.sql;
ALTER VIEW LANCEUR.V_VERSIONS_IHM_COMPATIBLES COMPILE;
spool off;
exit;
"@

    Set-Content -Path "/tmp/sql1.sql" -Value $sqlContent

    Start-Process -FilePath "sqlplus" -ArgumentList "-s / as sysdba @/tmp/sql1.sql" -NoNewWindow -Wait

    $ETAT_DIRECTORY = (Get-Content "/tmp/out1.sql" | Where-Object { $_ -notmatch "^\$" }) -replace '\s\s+', ''
    $ETAT_TABLE = (Get-Content "/tmp/out2.sql" | Where-Object { $_ -notmatch "^\$" }) -replace '\s\s+', ''
    $ETAT_VIEW = (Get-Content "/tmp/out3.sql" | Select-String "altered.").Count

    Remove-Item "/tmp/out1.sql", "/tmp/out2.sql", "/tmp/out3.sql"

    if ($ETAT_DIRECTORY -eq 1 -and $ETAT_TABLE -eq 2 -and $ETAT_VIEW -eq 1) {
        $VALIDATION = 0
        Add-Content -Path $LOG -Value "Validation ok pour le schema lanceur"
    } else {
        $VALIDATION = 1
        Add-Content -Path $LOG -Value "Validation KO pour le schema lanceur"
        Add-Content -Path $LOG -Value "ETAT_DIRECTORY:$ETAT_DIRECTORY (1), ETAT_TABLE:$ETAT_TABLE (2), ETAT_VIEW:$ETAT_VIEW (1)"
    }
}

bloc_note.1736925238.txt.gz · Dernière modification : 2025/01/15 08:13 de admin