sql >> Database >  >> RDS >> Oracle

Hoe kan ik de volledige definitie (sql) van systeemweergaven zoals user_objects krijgen?

+1 voor het bekijken van de definities van de systeemweergaven!

Het eerste probleem (DBMS_METADATA leeg) is een privilegeprobleem. Volgens de documentatie , zullen normale gebruikers alleen hun eigen objecten zien. Je hebt de rol SELECT_CATALOG_ROLE . nodig of EXP_FULL_DATABASE om objecten van andere gebruikers te zien.

Het tweede probleem (SQL is niet compleet) komt van het datatype LANG , die - volgens Oracle - niet meer zou moeten worden gebruikt. Het wordt echter nog steeds door Oracle gebruikt voor weergavedefinities, standaardinstellingen, tekst met beperkingen, enz. Omdat het zo moeilijk te hanteren is, is de weergave ALL_VIEWS heeft de originele tekst in de LONG kolom en een afgekapte tekst, meestal de eerste 4000 tekens, in de kolom text_vc , vermoedelijk voor "tekst in varchar".

BEWERKEN:

Ik geloof dat je Oracle 12 gebruikt als je de kolom text_vc noemt , die niet beschikbaar is in Oracle 11. Vermoedelijk gebruikt u een gecontaineriseerde database. Zo ja, neem dan een kijkje op Data Dictionary-architectuur in een CDB . Blijkbaar zijn de door Oracle geleverde zaken als views en packages alleen zichtbaar in de rootcontainer. Zucht!!



  1. PHP / SQL, selecteer eenvoudig waar de waarde als kolom wordt opgehaald

  2. Verbindingspooling in .NET/SQL-server?

  3. c# mysql AddWithValue unicode

  4. Hoe maak je een database aan met doctrine2?