Archive

Archives de l'auteur

Installation d’Oracle client sur un poste 64 bits et configuration de SSIS

 

1. Introduction

L’objectif de cet article est de vous aidez à configurer votre poste 64 bits pour travailler avec des connexions Oracle client en utilisant SSIS.

2. Installation

Pour commencer nous allons installer la version cliente 32 bits d’oracle. Nous utiliserons comme exemple, la version d’oracle 11.2.0

2.1. Installation Oracle 32 bits.

Choisissez Exécution comme type d’installation, ceci vous permets de notamment de bénéficier d’outil comme sql developper (pour se connecter sur des BDD oracle, faire des requêtes sql etc…)

Après avoir choisi vos langues, choisissez le répertoire où sera installé Oracle. Si vous êtes plusieurs à travailler sur ce poste, je vous conseil de choisir d’installer la version cliente sur un répertoire racine (C : ou D :..)

Pour le reste, faites Suivant jusqu’à la fin de l’installation.

2.2. Installation Oracle 64 bits.

Pour l’installation de la version 64 bits procédez de la même façon que la version 32 bits. Choisissez à nouveau un répertoire à la racine de préférence.

Faites Suivant jusqu’à la fin de l’installation.

3. Configuration des providers Oracle

Vous devez modifier des valeurs de clé de registre, afin de bénéficier des providers Oracle avec SSIS.

3.1. Configuration 32 bits

Connectez vous à la base de registre (tapez la commande regedit dans exécuter). Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

3.2. Configuration 64 bits

Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

Vous devez rebooter la machine.

 

4. Créer votre connexion Oracle dans le TNSNAME

Pour créer votre connexion Oracle vous avez 2 solutions soit vous passez par l’interface d’oracle comme ci-dessous, soit vous allez directement la configurer dans le fichier TNSNAME avec Notepad.

le TNSNAME est dans le répertoire suivant %ORACLE_HOME%/network/ADMIN/ (emplacement du logiciel que vous avez choisi pendant l’installation). Vous devez le configurer dans le répertoire 32 bits et 64 bits

Pour vérifier si votre connexion est valide, ouvrez un éditeur de commande et tapez la commande tnsping
NonDuServiceOracle

Cette commande permet de vérifier que votre service Oracle répond à travers le réseau.

5. Configuration de SSIS

Vous pouvez à présent, utiliser votre connexion cliente Oracle avec SSIS. Dans votre projet SSIS, choisissez une connexion OLEDB de type OLEDB for Oracle Provider. Il y a deux choses importantes à paramétrer. La solution du projet en mode 32 bits et le connecteur OLEDB.

5.1. Forcer la solution du projet SSIS à travailler en 32 bits

Sachez que les providers OLEDB pour Oracle sur les plateformes Microsoft marchent qu’en 32 bits. Dans les propriétés de la solution SSIS changer l’option suivante :

5.2. Modifier la propriété UseDefaultCodePage du connecteur OLEDB

Pour éviter un warning au niveau du connecteur OLEDB modifier la propriété suivante :

 

 

Voilà vous pouvez extraire vos données.

FIN

 

 

Categories: Trucs & astuces Tags:

Gestion des jobs sur sql server agent sans passer par sql server management studio

Lorsque l’on veut démarrer un job sur sql server agent, il n’est pas forcément nécessaire d’utiliser l’interface sql server management studio. Vous pouvez piloter vos jobs, soit en créant une interface maison (une web part par exemple) ou directement par sql. Je vous propose de vous décrire les étapes les plus utilisées.

1. Récupération de liste des jobs et leurs statuts

Pour récupérer la liste des jobs, je vous conseille de faire appel a la procédure stockée suivante msdb.dbo.sp_help_job . Cette procédure ramène les informations complètes sur les jobs y compris le statut en cours.


On va s’intéresser à 2 champs :

  • job_id : identifiant du job nécessaire pour accéder à l’historique des jobs.
  • Current_execution_status : spécifie le statut en cours du job.

    Définition de la liste des statuts :
    0 = arrêté ou suspendu,

    1 = en cours d’exécution,
    2 = en attente d’un thread,
    3 = réessaie,
    4 = arrêté,
    5 = suspendu,
    6 = en attente de terminaison d’étape,
    7 = exécutions des actions d’achèvement

2. Démarrage et arrêt d’un job

2.1 Démarrage du job

Pour démarrer un Job sans passé par l’interface de sql server agent, il suffit de faire appel à la procédure stockée msdb.dbo.sp_start_job .Cette procédure nécessite en paramètre le nom du job à exécuter. Comme dans l’exemple ci-dessous :

Exec msdb.dbo.sp_start_job
‘My_Job_Name’

2.2 Arrêt du job

Pour stopper un Job sans passé par l’interface de sql server agent, il suffit de faire appel à la procédure stockée msdb.dbo.sp_stop_job . Cette procédure nécessite également en paramètre le nom du job à exécuter. Comme dans l’exemple ci-dessous :

Exec msdb.dbo.sp_stop_job
‘My_Job_Name’

3. Connaître le résultat de l’exécution d’un job

Avec la table sysjobhistory il est possible de savoir si l’exécution d’un job c’est terminé avec succès ou non. Après avoir récupérer au préalable l’ID du job, il vous suffit de récupérer la dernière instance, est lire la colonne run_status pour connaître le résultat de l’exécution.

SELECT [instance_id] ,[step_id],[run_status] FROM [msdb].[dbo].[sysjobhistory] where [job_id]= ‘JobID’
and [instance_id] in
(select
Max([instance_id]) FROM [msdb].[dbo].[sysjobhistory] where [job_id] =
‘JobID’)

Categories: Trucs & astuces Tags: