0
votes

Goutte vue si existe dans Oracle SQL

Je suis nouveau dans le système de base de données Oracle. Quel est l'équivalent de l'instruction SQL ci-dessous dans Oracle 12C?

DROP VIEW IF EXIST <view_name>


0 commentaires

4 Réponses :


1
votes

sauf à partir de simplement appeler Drop View code>, vous pouvez écrire Une procédure qui vérifie avant:

BEGIN
 FOR i IN (SELECT null FROM user_views WHERE view_name = 'BOOKS_emp') LOOP
   EXECUTE IMMEDIATE 'DROP VIEW books_emp';
 END LOOP;
END;
/


0 commentaires

0
votes

Qu'est-ce que vous avez écrit fonctionne en 12C sans aucun problème. En outre, vous pouvez simplement utiliser,

DROP VIEW <VIEW_NAME>;


0 commentaires

0
votes

Vous pouvez faire quelque chose via une procédure, mais votre requête n'est pas pertinente lorsque vous pouvez exécuter la vue Drop ViewName. Il peut tout de suite vous montrer s'il existe ou non.

   begin
       dropifexists('viewname' ) ;
   end;
   /


3 commentaires

Vous pouvez également vouloir expliquer comment l'utiliser ..


Oui @raymond Ive a ajouté le code pour appeler la procédure. Merci!


Vue DROP devrait être dynamique SQL.



0
votes

Êtes-vous sûr de vouloir remplacer cette fonctionnalité 1: 1? Normalement, vous effectueriez une vue Drop Si existez dans SQL Server car jusqu'à récemment, SQL Server n'avait pas d'option Créer ou altérer la vue . Donc, vos scripts de promotion supprimeraient la vue si elle existait, puis disposerait d'une instruction crée une vue afin qu'il puisse être exécuté plusieurs fois sans problème.

Oracle a toujours (Eh bien, au moins les deux dernières décennies) ont pris en charge un Créer ou remplacer la visualisation de la vue , de sorte que vos scripts Oracle contiennent normalement une instruction Créer ou remplacer une affichage. Il n'y aurait normalement aucun besoin d'essayer de déposer la vue d'abord.

Vous voudriez seulement laisser tomber la vue s'il s'agissait d'un objet obsolète que vous vouliez être retiré de manière permanente, mais dans ce cas, vous sauriez que la vue existe, de sorte que cela n'aurait pas beaucoup de sens à Vérifiez d'abord l'existence.


0 commentaires