AppleScript et Oracle pour Macintosh OS X
Déclenchement d’un ordre SQL (quelconque) depuis AppleScript

RCI Informatique, Avril 2004

1 - Objectif

On souhaite pouvoir saisir dans un dialogue AppleScript une requête (ou un ordre) SQL ou PL/SQL. Le script décrit lance cet ordre en faisant appel à SQL*Plus


2 - Donnée fournie et résultat obtenu

La donnée, c’est le texte (SQL) d’une requête ou d’une commande contenue dans un fichier :

par exemple



On indiquera dans une boîte de dialogue (AppleScript) le nom du fichier où est definie l’ordre ou la requête:



Dès que l’on valide la requête est lancée :







3 - Techniques utilisées

SQL*Plus est capable de lancer un “batch SQL” avec la commande “start nom_de_fichier”

On utilise la boite de dialogue AppleScript et son attribut “Text returned”




4 - Le texte AppleScript

-- Déclenchement d'une requête SQL stockée dans un fichier texte avec Oracle 9i pour Macintosh OS X
-- Au format Batch SQL*Plus (ordres SQL de définition ou de requêtes), séparés par des ;
-- sous forme d'un script Apple Script
-- avec demande interactive à l'utilisateur d'indiquer quel fichier .sql "lancer"

-- Copyright, tous droits réservés, RCI Informatique SA, 2004
-- www.rci-informatique.fr
-- www.index-informatique.net

-- Définition et initialisation d'une variable globale

global wT
set wT to ""

-- Positionnement dans le répertoire DBCreate
e("cd /Users/oracle/9iR2/orahome/DBCreate")

-- Activation des variables d'environnement Oracle
e(". DBENV")

-- Lancement de SQL Plus en se connectant avec SQL*Net TCP/IP
-- la commande à lancer est la suivante :
-- sqplus "scott/tiger@abmacipc"

e("sqlplus \"scott/tiger@abmacipc\"")

-- Demande à l'utilisateur de sélectionner le batch SQL à lancer
set w to display dialog "Quel batch sql lancer depuis le répertoire /Users/temp ?" default answer "sql1"

-- Stockage de la réponse sous forme de chaine de caractères
set wSQL to text returned of w


e("start /Users/temp/" & wSQL & ".sql")

-- Déclenchement de la suite de commandes Unix
doUnix(wT)

-- Le résultat de la requête est affiché dans la fenêtre Terminal Unix de Mac OS X

-- Définition de la procédure d'envoi à Unix d'une ou plusieurs commandes
on doUnix(x)
  tell application "Terminal"
    activate
    do script x
  end tell
end doUnix


-- Constitution d'une suite de commandes séparées par des retours à la ligne
on e(x)
  set wT to wT & return & x
end e



 




Revenir au sommaire  AppleScript et Oracle






Tous droits réservés, RCI Informatique SA, 2004

rci@wanadoo.fr

www.rci-informatique.fr

www.index-informatique.net