English title: Miniscript for looking up object names
Bereits vor einiger Zeit war hier mal ein Blog-Posting mit Kommando-Abkürzungen für SQL*Plus (
Miniskripts mit SQL*Plus). Damit kann man häufig benötigte Kommandos einfach durch kürzere Skriptnamen ersetzen. Das Posting enthält auch ein paar Beispiele, die ich selbst recht häufig nutze.
Some time ago I had a blog posting about "command shortcuts" for SQL*Plus (
Path variable for SQL script: SQLPATH). Frequently used SQL statements can then be replaced with shorter script names. The posting also contains some example which I actually use quite often.
Heute habe ich ein Neues: Ich selbst suche in SQL*Plus recht oft bestimmte Objekte (Prozedurnamen oder Views). Und dann geht man halt hin und sucht in der ALL_OBJECTS-View - ist ja auch kein Problem. Aber einige Tipperei. Eine Lösung könnte das hier sein ...
Here is a new one: I'm frequently looking for spcific objects in SQL*Plus. Most often I then use the ALL_OBJECTS view to lookup the exact object name (which I need for describe or using it). This is not rocket science - but a lot of typing. This one might help ...
col object_name format a30
col object_type format a20
col owner format a15
set pages 30
set verify off
set lines 120
select owner, object_name, object_type
from all_objects
where
(upper(owner) like '%'||substr(upper('&1'), 1, instr(upper('&1'), ',', 1) - 1)||'%') and
(upper(object_type) like '%'||substr(upper('&1'), instr(upper('&1'),',', 1) + 1, instr(upper('&1'),',', -1) - (instr(upper('&1'),',', 1) + 1))||'%') and
(upper(object_name) like '%'||substr(upper('&1'), instr(upper('&1'), ',', instr(upper('&1'), ',', 1)+1 ) + 1)||'%') and
rownum <50
/
undefine 1
Speichert die Datei in dem Verzeichnis ab, auf das die Umgebungsvariable SQLPATH zeigt. Gebt der Datei einen kurzen Namen, bspw. "lo" für "list objects". Dann könnt Ihr Sie wie folgt nutzen:
Save the file in the directory which the environment variable SQLPATH points to and give a short name - say "lo" for "list objects". Then use it as follows:
SQL> @lo {owner,object-type,object-name}
SQL> @lo ,vie,APEX_APP%REG
OWNER OBJECT_NAME OBJECT_TYPE
--------------- ------------------------------ --------------------
APEX_030200 APEX_APPLICATION_PAGE_REGIONS VIEW
APEX_030200 APEX_APPLICATION_TEMP_REGION VIEW
Nach dem Skriptnamen kommt ein Parameter, in dem Ihr durch Komma getrennt eine Angabe zum Owner, zum Typen und zum Namen machen könnt. Ihr könnt Angaben weglassen, die zwei Kommas müssen aber auf jeden Fall da sein. Das Skript rahmt jede Angabe mit Prozentzeichen (%) ein und macht eine LIKE-Suche.
The script name is followed by one argument which contains search criteria for owner, object type and object name. You can omit criteria but the two commas must be present in all cases. The script wraps the criteria with percent signs (%) and performs a LIKE search.
1. Zeige mir die Views, die was mit NLS zu tun haben
1. Show me the views containing NLS information
SQL> @lo ,vie,nls
OWNER OBJECT_NAME OBJECT_TYPE
--------------- ------------------------------ --------------------
SYS V_$NLS_PARAMETERS VIEW
SYS V_$NLS_VALID_VALUES VIEW
SYS GV_$NLS_PARAMETERS VIEW
SYS GV_$NLS_VALID_VALUES VIEW
SYS NLS_SESSION_PARAMETERS VIEW
SYS NLS_INSTANCE_PARAMETERS VIEW
SYS NLS_DATABASE_PARAMETERS VIEW
SYS EXU9NLS VIEW
2. Standalone-Prozeduren im APEX..-Schema
2. Which standalone procedures are available in the APEX...-Schema
SQL> @lo apex,pro,
OWNER OBJECT_NAME OBJECT_TYPE
--------------- ------------------------------ --------------------
APEX_030200 WWV_FLOW_INIT_HTP_BUFFER PROCEDURE
APEX_030200 F PROCEDURE
APEX_030200 APEX PROCEDURE
APEX_030200 DEVELOPMENT_SERVICE_HOME PROCEDURE
APEX_030200 HTMLDB PROCEDURE
APEX_030200 HTMLDB_LOGIN PROCEDURE
APEX_030200 DEVELOPMENT_SERVICE_HOME_LOGIN PROCEDURE
APEX_030200 DEVELOPMENT_SERVICE_SIGNUP PROCEDURE
APEX_030200 Z PROCEDURE
APEX_030200 G PROCEDURE
APEX_030200 P PROCEDURE
APEX_030200 APEX_ADMIN PROCEDURE
APEX_030200 HTMLDB_ADMIN PROCEDURE
3. Wie war doch der Name der View mit den Details zur Ausführung eines Scheduler-Jobs?
3. What was the name of the view containing the details about a scheduler job run?
SQL> @lo ,v,scheduler%job%det
OWNER OBJECT_NAME OBJECT_TYPE
--------------- ------------------------------ --------------------
SYS DBA_SCHEDULER_JOB_RUN_DETAILS VIEW
SYS USER_SCHEDULER_JOB_RUN_DETAILS VIEW
SYS ALL_SCHEDULER_JOB_RUN_DETAILS VIEW
Viel Spaß damit. Wenn Ihr auch mit SQL*Plus arbeitet und solche "Miniskripts" habt - ich bin stets interessiert!
Have fun! If you're also working with SQL*Plus and you have such "miniscripts" - I'm always interested ...