Filtrer la colonne "texte" sur all_views
Est-il possible de filtrer les texte colonne sur oracle all_views table?
Par exemple:
SELECT *
FROM ALL_VIEWS
WHERE UPPER(TEXT) LIKE '%FOO%';
Exception:
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
00932. 00000 - "inconsistent datatypes: expected %s got %s"
Edit:
DESC ALL_VIEWS
Name Null Type
---------------- -------- --------------
OWNER NOT NULL VARCHAR2(30)
VIEW_NAME NOT NULL VARCHAR2(30)
TEXT_LENGTH NUMBER
TEXT LONG()
TYPE_TEXT_LENGTH NUMBER
TYPE_TEXT VARCHAR2(4000)
OID_TEXT_LENGTH NUMBER
OID_TEXT VARCHAR2(4000)
VIEW_TYPE_OWNER VARCHAR2(30)
VIEW_TYPE VARCHAR2(30)
SUPERVIEW_NAME VARCHAR2(30)
source d'informationauteur Vitor Freitas
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas convertir un clob à la volée via une instruction select, malheureusement. to_lob fonctionne avec INSERT, mais cela signifierait que vous auriez besoin de l'installation d'une table séparée et ne s'insère à l'aide de to_lob.
Que vous pouvez faire d'attribution des conversions de type varchar en pl/sql, et la plupart du temps, vous constaterez que le text_length dans all_views est < 32767, ce qui permettra de couvrir la plupart des cas, bien que ses pas une belle que juste en sélectionnant:
Ici, je suis à la recherche dans le champ de texte pour la chaîne "union".
Espère que ça aide.
Vous ne pouvez pas manipuler de LONGUES colonnes facilement dans SQL malheureusement.
Pour votre problème actuel, comme une solution de contournement, vous pouvez utiliser le
*_DEPENDENCIES
vue de trouver tous les points de vue dépendant d'un tableau:Sur Oracle Developer et l'exportation vers Excel
SÉLECTIONNEZ view_name, texte de all_views où le propriétaire = 'MyDb'
Importer le fichier Excel SQL Server ([ALL_VIEWS] tableau)
SÉLECTIONNEZ [VIEW_NAME], [TEXTE]
À PARTIR de [MyDb].[dbo].[ALL_VIEWS]
OÙ [TEXTE] LIKE '%FOO%'
De recherche sur TEXT_VC au lieu de TEXTE