Je tente actuellement de mettre en œuvre un script Bash qui fonctionne à la fin de la journée qui exécute une simple requête Oracle. La commande fonctionne simplement bien en oracle, mais lorsque vous êtes à l'intérieur d'un fichier .sql, il ne fonctionne pas.
J'ai tenté de mettre tout le code sur une ligne et d'ajouter des points-virgules. P>
Contenu du fichier de commandes (avec utilisateur / passe altéré): p> contenu du fichier SET_CHANGED.SQL: P >
UPDATE ris_web a
SET a.changed = 0
where exists
(
select modified_date from invn_sbs b
where b.item_sid = a.item_sid
and b.modified_date <= sysdate-1
);
COMMIT;
END;
3 Réponses :
dans SQLPlus Vous devez utiliser un / CODE> Pour terminer une instruction SQL ou un bloc PL / SQL au lieu d'utiliser un point-virgule, modifiez ainsi votre fichier sur
UPDATE ris_web a
SET a.changed = 0
where exists
(
select modified_date from invn_sbs b
where b.item_sid = a.item_sid
and b.modified_date <= sysdate-1
)
/
SHOW ERRORS
/
COMMIT
/
SHOW ERRORS
/
END
Salut @bobjarvis. Merci pour votre réponse. Quand j'ai modifié mon fichier set_changed.sql pour correspondre à votre réponse, il est juste de rester sur la ligne de commande. J'ai tenté d'expérimenter votre solution pour tenter de le faire travailler, mais je ne suis toujours pas en mesure de trouver un succès.
Vous avez Remplacez simplement l'extrémité extrémité; code> à la fin du script mais aucun
commence code> pour cela. p>
; code> avec
/ code> p>
Salut @tejash ---- Ora-00980. Merci pour votre réponse. J'ai essayé de remplacer l'extrémité ; code> avec
/ code> et aussi ajouter un
commencer code> et je n'ai toujours pas réussi à le faire fonctionner.
Non, vous n'avez pas à ajouter commencer code>. Il suffit de remplacer
fin code> avec
/ code>
Droit. J'ai remplacé fin code> avec
/ code> sur ma requête d'origine et il n'a toujours pas fonctionné.
La syntaxe d'origine était correcte. Il y avait des changements non engagés dans SQLDEveloper qui causaient le fichier .SQL de ne jamais finir de fonctionner. Merci à tous pour votre aide. p>
Obtenez-vous le même message d'erreur lorsque vous utilisez la sortie; au lieu de la fin; ?
Quel est le but du tuyau
| code> dans votre fichier batch? Vous passez la sortie de la commande code> sortie code>, donc rien, à l'entrée de
SQLPLUS code>; Est-ce vraiment ce que vous voulez?
@nébulopathie après avoir remplacé
fin; code> avec
sortie; code> Je voit simplement voir le curseur clignote après qu'il indique "Connecté à: Oracle Base de données 12C Standard Edition version 12.1.0.2.0 - 64 bits de production "
@Aschipfl Ce n'était rien d'important. Je l'ai sorti. C'était juste quelque chose que j'échangeais.