Je veux mettre les instructions SQL suivantes dans un script shell en utilisant une seule variable que je peux envoyer à 3 personnes dans le cadre de mes contrôles de santé quotidiens de notre côté client. S'il vous plaît aidez-moi avec les idées ici. Je veux aussi ajouter 2 commandes pour vérifier le diaglog et l'espace.Linux DB2 Shell Script
!df -h;
!db2diag -f;
SELECT DB_STATUS as "DB Status",
LAST_BACKUP as "Last Backup",
APPLS_CUR_CONS "No. of Current Connections"
FROM TABLE(MON_GET_DATABASE(-2));
select
NUM_INDOUBT_TRANS as "Indoubt Transactions"
from table(mon_get_transaction_log(-2));
SELECT lock_name,
hld_member,
lock_status,
hld_application_handle
FROM TABLE (MON_GET_APPL_LOCKWAIT(NULL, -2));
select
varchar(tbsp_name, 30) as tbsp_name,
varchar(tbsp_state, 40) as tbsp_state
from table(mon_get_tablespace('',-2));
Jusqu'à présent, je donne les résultats suivants:
connect to DBNAME
Health=`db2 -x "SELECT DB_STATUS as "DB Status",
LAST_BACKUP as "Last Backup",
APPLS_CUR_CONS "No. of Current Connections"
FROM TABLE(MON_GET_DATABASE(-2))"`
echo $Health
mail -s "health Check" [email protected] <<< "$Health"
Obtenir l'erreur ci-dessous. Même en supprimant le "", je reçois toujours les mêmes erreurs. Please help
SQL0104N Un "jeton" inattendu a été trouvé après "ECT DB_STATUS comme DB". Les jetons attendus peuvent inclure: "". SQLSTATE = 42601
Considérons un design différent. Organisez l'exécution du script de vérification de l'intégrité et créez un fichier de sortie. Envoyez ensuite ce fichier de sortie par e-mail aux destinataires séparément. Pour le shell-script, choisissez soit d'avoir le SQL dans le shell-script, ou alternativement mettre le SQL dans un fichier texte et obtenir le shell-script pour exécuter le clp Db2 sur ce fichier texte (fichier de sortie db2 -o -tvf text-file.sql). Si vous placez le SQL dans un fichier texte, évitez de citer des problèmes susceptibles de provoquer les erreurs que vous voyez. Si vous mettez le SQL en ligne dans le shell-script, vous devez prendre plus de soin avec des guillemets. – mao
Vous devez échapper les guillemets autour de "DB Status" dans l'instruction SQL entre guillemets. – mustaccio