-
View definition limite ?
Hello tout le monde.
Je me retrouve avec une limite sur une vue qui est assez lourde (beaucoup d'union) et ne passe pas.. (tronqué)
J'ai vu qu'il existe une limite de 64kb sur les définitions des vues mais je n'ai pas réussi à trouver où et comment on peut changer cette limite. (si on peut ??)
Un conseil ?
Merci par avance :)
-
Pour atteindre la limite, la vue doit vraiment être très complexe... ou pas du tout optimisée :roll:
Il te reste aussi la possibilité de découper ton problème et faire une vue sur des vues.
-
Ici tu as les limites de la base Oracle : https://docs.oracle.com/cd/B19306_01...03.htm#i288032
Première ligne : CREATE MATERIALIZED VIEW definition - Maximum size - 64K Bytes.
Ta vue est une vue classique ou une vue matérialisée?
Cette limite de 64k est visiblement un bug de la documentation comme le démontre Tom.
https://asktom.oracle.com/pls/asktom...41742083561301
"I was asked this question the other week and had a look in the documentation for 8.1.7 (the database is still stuck on this version at the app vendor's insistence)
This is what it says there :-
"SQL Statement Length
Maximum length of statements
64K maximum; particular tools may impose lower limits."
Et la réponse de Tom est : "was documentation bug" avec un exemple ensuite.
-
Merci !!
Il s'agit bien d'une vue classique.
Je regarde tout cela et je vous dis quoi ;)
-
En faite, mon soucis n'est pas la création de la vue. Elle passe sans soucis (sql de 68ko)
Mais quand on veut l'ouvrir, ça plante. Et surtout, quand on l’édite via SQLDeveloper, on voit bien que la requête est tronqué (et le check synthax plante forcement là ou c'est tronqué).
Voila, désolé de ne pas avoir été précis la 1er fois mais le soucis ne vient pas de la création en elle même de la vue..
MAJ : Pour être exact, il me tronque systématiquement à 33 244 caractères...
Encore merci :)
-
Et c'est quoi la fin de l'histoire?
C'est un bug d'affichage dans SQL Developer ou bien tu as le même pb avec SQL*Plus?
D'expérience, je te conseille de TOUJOURS valider tes ordres SQL avec SQL*plus, ne serait-ce que pour valider que tu n'as pas oublié le caractère terminal d'un ordre SQL (dans un SELECT par exemple) alors que SQL Developer ne check pas sa présence.