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>
4 Réponses :
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;
/
Qu'est-ce que vous avez écrit fonctionne en 12C sans aucun problème. En outre, vous pouvez simplement utiliser,
DROP VIEW <VIEW_NAME>;
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; /
Vous pouvez également vouloir expliquer comment l'utiliser ..
Oui @raymond Ive a ajouté le code pour appeler la procédure. Merci!
Vue DROP code> devrait être dynamique SQL.
Êtes-vous sûr de vouloir remplacer cette fonctionnalité 1: 1? Normalement, vous effectueriez une vue Oracle a toujours (Eh bien, au moins les deux dernières décennies) ont pris en charge un 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. P> Drop Si existez code> dans SQL Server car jusqu'à récemment, SQL Server n'avait pas d'option
Créer ou altérer la vue code>. Donc, vos scripts de promotion supprimeraient la vue si elle existait, puis disposerait d'une instruction code> crée une vue code> afin qu'il puisse être exécuté plusieurs fois sans problème. P>
Créer ou remplacer la visualisation de la vue CODE>, 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. P>