2008-11-29 4 views
1

Je suis niveau assez débutant à des scripts shell et suivants les détails ..accès sqlplus et l'accès e-mail en utilisant un script shell

cherche le meilleur moyen de tirer des requêtes SQL et et exécuter une logique basée sur ces données . Je l'ai utilisé l'extrait suivant ..

shellvariable = sqlplus $user/$passwd <<END select count(1) from table1; end EOF

si [$ shellvariable -ne 0] puis <> fi

Y at-il une meilleure façon de réaliser la même ..

Répondre

4

vous êtes sur la bonne voie. sqlplus est la meilleure façon d'interagir avec la base de données lorsque vous êtes scripts shell, mais deux choses à noter:

  1. utiliser le paramètre « S » pour arrêter sqlplus d'imprimer toutes ses informations d'application
  2. à lire les données directement dans une variable, vous besoin d'un certain environnement sqlplus paramètres pour élaguer la sortie à juste ce que vous voulez

pour tout DBA qui apprennent le script shell pour les aider à gérer et autom mangé l'administration de la base de données Oracle, je recommande fortement le livre de Jon Emmons Oracle Shell Scripting. Il enseigne un bon cours d'intro de script shell, mais dans le contexte de tâches qui sont vraiment utiles et intéressantes pour les administrateurs de base de données. Une note finale: si vous faites quelque chose de plus qu'une simple tâche DBA, je recommande de ne pas utiliser de scripts shell, mais d'utiliser un langage de script qui prend en charge la base de données appropriée. Perl est une bonne option pour Oracle, car il est installé avec la base de données.

Here's an example d'un script pour Oracle fait à la fois bash et perl. A partir de la version shell, voici comment il lit une valeur spécifique à une variable shell:

alertlog=$(sqlplus -S \/ as sysdba 2> /dev/null <<EOF 
SET NEWPAGE 0 
SET SPACE 0 
SET LINESIZE 80 
SET PAGESIZE 0 
SET ECHO OFF 
SET FEEDBACK OFF 
SET VERIFY OFF 
SET HEADING OFF 
SELECT value 
FROM v\$parameter 
WHERE name = 'background_dump_dest'; 
EOF 
) 
Questions connexes