Procédure Stockée Oracle avec la commande Alter
Je suis en train de créer une procédure stockée Oracle qui accepte un nom de table comme un paramètre. La procédure sera alors de reconstruire tous les index de la table.
Mon problème est que j'obtiens une erreur en utilisant la commande ALTER partir d'une procédure stockée, comme si PLSQL ne permet pas de cette commande.
Pouvez-vous poster le code fautif?
L'erreur ORA serait bon de savoir, ainsi que la version de Oracle vous utilisez en plus du code que vous tentez d'utiliser.
Juste par curiosité, comment as la réponse que vous avez accepté en fait la réponse à votre question?
Bonjour, ce site n'est pas seulement un coton-et-Un forum, c'est aussi un wiki destiné à aider tout le monde. Les gens du monde entier ont aidé, non seulement par ceux qui répondent à des questions, mais aussi à ceux qui (comme vous) qui demander questions. Vous pouvez aider les autres en ajoutant des détails comme l'erreur ORA et Oracle version, et lorsque vous acceptez une réponse, expliquez comment cette réponse vous a aidé. De partager et de profiter!
L'erreur ORA serait bon de savoir, ainsi que la version de Oracle vous utilisez en plus du code que vous tentez d'utiliser.
Juste par curiosité, comment as la réponse que vous avez accepté en fait la réponse à votre question?
Bonjour, ce site n'est pas seulement un coton-et-Un forum, c'est aussi un wiki destiné à aider tout le monde. Les gens du monde entier ont aidé, non seulement par ceux qui répondent à des questions, mais aussi à ceux qui (comme vous) qui demander questions. Vous pouvez aider les autres en ajoutant des détails comme l'erreur ORA et Oracle version, et lorsque vous acceptez une réponse, expliquez comment cette réponse vous a aidé. De partager et de profiter!
OriginalL'auteur Will | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
Ici sont un couple de possibilités. Tout d'abord, vous devez traiter le SQL en SQL dynamique. Deuxièmement, Oracle instructions DDL ne peut pas être exécutée dans une transaction (ou, il met fin à la transaction en cours et ne peuvent eux-mêmes être annulée). Cela peut affecter si vous pouvez les utiliser dans des procédures stockées, ou de l'endroit où vous pouvez utiliser des procédures stockées qui les contiennent.
Si aucun des ci-dessus s'appliquent à tous - il peut facilement être quelque chose d'autre égaré - je suggère de poster une partie du code.
OriginalL'auteur Jonathan Leffler
Utiliser le
execute immediate
instruction à exécuter DDL à l'intérieur de PL/SQL.J'ai testé ce code, il fonctionne.
OriginalL'auteur Igby Largeman
De la Documentation.
Passant Schéma De Noms D'Objets Comme Paramètres
OriginalL'auteur Brian