AppleScript et Oracle pour Macintosh OS X
Déclenchement dun 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, cest le texte (SQL) dune requête ou dune commande contenue dans un fichier :
par exemple

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

Dès que lon 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