De créer ou de remplacer la table en Oracle pl/sql
J'ai besoin d'un script qui crée la table ou si il existe déjà des gouttes, et quand recrée la table. Après quelques recherches, j'ai trouvé que CREATE OR REPLACE TABLE
en pl/sql n'existe pas. Donc je viens avec ce script :
DECLARE
does_not_exist EXCEPTION;
PRAGMA EXCEPTION_INIT (does_not_exist, -942);
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE foobar';
EXCEPTION
WHEN does_not_exist
THEN
NULL;
END;
/
CREATE TABLE foobar (c1 INT);
Est-il un bon moyen d'obtenir cette fonctionnalité?
Basé sur ce que vous essayez, peut-être des tables temporaires serait utile.
nope, j'ai besoin d'utiliser de table, pas de table temporaire. Mais merci pour votre suggestion.
je n'ai jamais compris cette chose. il suffit de déposer la table si il dosent existe alors pas de mal à cela.
nope, j'ai besoin d'utiliser de table, pas de table temporaire. Mais merci pour votre suggestion.
je n'ai jamais compris cette chose. il suffit de déposer la table si il dosent existe alors pas de mal à cela.
OriginalL'auteur kuldarim | 2013-05-19
Vous devez vous connecter pour publier un commentaire.
À l'aide d'un mondial table temporaire semble être une meilleure option. Toutefois, si vous insistez sur la suppression et re-ajout de tables lors de l'exécution, vous pouvez lancer une requête de l'une des _TABLES points de vue (c'est à dire USER_TABLES, DBA_TABLES, ALL_TABLES) afin de déterminer si la table existe, tomber si c'est le cas, créer:
De partager et de profiter.
OriginalL'auteur Bob Jarvis
Vous ne devriez vraiment pas faire cela en PL/SQL, les tables créées lors de l'exécution serait aussi le signe d'une faille dans votre modèle de données. Si vous êtes vraiment convaincu que vous devez absolument faire cela, alors enquêter sur les tables temporaires premier. Personnellement, j'avais réévaluer s'il est nécessaire à tous.
Vous semblent aller pour le L'aeap, par opposition à LBYL approche, qui est décrit dans les quelques réponses à cette question. Je dirais que c'est inutile. Une table est assez statique de la bête, vous pouvez utiliser le système de vue USER_TABLES afin de déterminer s'il existe avant de le laisser tomber.
OriginalL'auteur Ben