Se connecter à sqlplus dans un script shell, et d'exécuter les scripts SQL
J'ai un .fichier sql, qui est un tas de oracle pl/sql commandes et je veux créer un script shell pour exécuter ces commandes.
Supposons que user/pass@server
est mes informations d'identification. Quel sera le script shell pour accomplir une telle tâche?
Vous devez vous connecter pour publier un commentaire.
Par exemple:
sqlplus -s admin/password@server
(le@server
partie a été la pierre d'achoppement dans mon cas).Ne serait pas quelque chose de semblable à ce mieux, de la sécurité?:
ps -ea
CONNECT
. DoncCONNECT "$ORCL_CREDS"
ne fonctionne pas.Si vous souhaitez rediriger la sortie vers un fichier journal pour rechercher des erreurs ou quelque chose. Vous pouvez faire quelque chose comme cela.
Ce doit gérer le problème:
Certains des autres réponses ici m'a inspiré à écrire un script pour automatiser le mélange de l'exécution séquentielle des tâches à l'aide de SQL SQLPLUS avec des commandes shell pour un projet, un processus qui a déjà été fait manuellement. Peut-être que ce (très aseptisé) exemple sera utile à quelqu'un d'autre:
runsql
vous permet de passer des informations d'identification de la chaîne comme premier argument, et SQL vous avez besoin en tant que deuxième argument. Les variables contenant les informations d'identification sont inclus à des fins d'illustration, mais pour la sécurité, je fait de la source à partir d'un autre fichier. Si vous vouliez gérer plusieurs connexions de base de données, vous pouvez facilement modifier la fonction d'accepter la hoststring comme un paramètre supplémentaire.