|
TOAD: gratis te downloaden
In de vorige Orakels hebben tips gestaan die in de
dagelijkse praktijk goed bruikbaar bleken. Bij een aantal
van die tips dacht ik echter: 'Dat kan met TOAD toch
net zo handig opgelost worden?'.
Het is nu zo'n drie jaar geleden dat ik door een toenmalig
collega attent werd gemaakt op 'een heel handige gratis
tool'. Ik heb dat tool toen gedownload en ben het gaan
gebruiken. Ik denk dat er sinds die dag weinig werkdagen
zijn voorbijgegaan waarop ik TOAD niet gebruikte...
Reden voor mij u deelgenoot te maken van TOAD.
Door Ruben Spekle (Ruben@spekle.com)
TOAD is gemaakt door een applicatieprogrammeur die zelf
een 'tool'-tje gebouwd had voor een aantal van zijn
standaard bezigheden. Hij heeft dit tool toen aan collega's
en vrienden laten zien, die al snel enthousiast werden
over de mogelijkheden in het gebruik. Snel daarna begonnen
ook de suggesties voor verbeteringen te komen. Toen
hij na een aantal maanden een acceptabel tool had heeft
hij het op het net gezet. TOAD was gratis te downloaden
en bijna dagelijks kwamen er nieuwe releases uit.
Al snel ontstond er een enthousiaste gebruikersgroep
die kritisch naar TOAD keek en regelmatig met wijzigingen
en bug-meldingen kwam. De geestelijk vader van TOAD,
op het net 'TOADman' genoemd, probeerde zoveel mogelijk
wijzigingen en oplossingen te maken en te verspreiden.
Dit werd een steeds moeilijker klus en op den duur bijna
onmogelijk. Wat velen vreesden werd waar: TOAD werd
opgeslokt door 'het grote geld'. Gelukkig werd ook de
'TOADman' in dienst genomen en bleef er elke maand een
beperkte - maar toch nog steeds gratis - versie van
TOAD op het net verschijnen. TOAD werd stabieler en
vooralsnog heeft de commercie TOAD geen kwaad gedaan.
TOAD heeft veel facetten en kan ontzettend veel. Meer
dan in een artikel verteld kan worden. Ik hoop echter
met een opsomming van de mogelijkheden de mensen die
TOAD niet kennen (zijn die er nog?) enthousiast te maken.
Wellicht ook dat mensen die allang met TOAD werken dingen
van mij horen die ze nog niet waren tegengekomen.
De TOAD-gebruiker die vindt dat ik belangrijke TOAD-features
vergeet, nodig ik bij deze uit via de OCCentor-mailinglist
of een nieuw artikel in Het Orakel zijn of haar feature(s)
te openbaren.
Lijst
van instances/databases
Bij het inloggen geeft TOAD een lijst van instances/databases
die gekozen kunnen worden. Hij onthoudt vorige inlognamen
en uit die lijst kan dus worden snelgekozen. TOAD onthoudt
ook wachtwoorden, maar alleen als zo'n wachtwoord gelijk
is aan de inlognaam (het is echter mogelijk om TOAD
zo in te stellen dat deze ook de wachtwoorden onthoudt).
Door het bestand TOAD2.ini te bewaren is het mogelijk
bij een update deze inlognamen opnieuw te gebruiken.
Een update van TOAD omvat namelijk het downloaden van
de totale programmatuur. En dat veroorzaakt dat alles
weer in 'nieuwstaat' is. Het kopiëren van de oude TOAD2.ini
zorgt er echter voor dat de 'oude' inlognamen weer gekozen
kunnen worden.
Het is overigens mogelijk binnen TOAD meerdere sessies
actief te hebben. Door het aanroepen van een nieuwe
sessie kan voor een bepaald window de actieve sessie
worden veranderd. Een erg handige optie als je bepaalde
queries vaker wilt doen in meerdere schema's of databases.
Let echter wel op dat je de juiste schema's voor je
hebt als je gaat wijzigen... Het is mij namelijk al
menig keer gebeurd dat ik in een verkeerd schema een
en ander uitvoerde..!
Editor en resultaatscherm
Het sql window van TOAD bestaat uit een editor waar
sql commando's kunnen worden ingetypt en een resultaatscherm
waar het resultaat van de commando wordt geplaatst.
Een voorbeeld daarvan vindt u in de bovenstaande afbeelding.
Het is nu mogelijk het resultaat uit te printen (waarbij
een aantal koppen en voetteksten kunnen worden geplaatst),
of het resultaat te bewaren (komma gescheiden of tab
gescheiden). Als niet alle kolommen in het resultaat
gewenst zijn, kunt met een rechter muistoets en select
columns de gewenste kolommen worden geselecteerd (alleen
in de commerciële versie). Het is natuurlijk ook
mogelijk deze kolommen in het select statement op te
nemen. Om echter typewerk te besparen kan de tabel (de
tekst emp in het voorbeeld) worden geselecteerd en vervolgens
rechtermuistoets of f10 en dan describe. Het scherm
- zoals te zien in de figuur op de volgende pagina -
wordt getoond.
Door te dubbelklikken op de kolomnamen of via drag en
drop kunnen de namen worden geselecteerd. Verder worden
in dit scherm alle eigenschappen van de tabel weergegeven:
columns, indices, constraints, triggers, data (de inhoud
van de tabel kan eventueel met een filter worden verfijnd,
maar ook kan de inhoud worden gemuteerd), scripts en
andere zaken. In scripts staat de ddl die gebruikt moet
worden om de tabel aan te maken. Ook handig is het laatste
tabblad referential dat aangeeft door welke andere objecten
de tabel gebruikt wordt en aan welke andere objecten
de tabel refereert. Handig bij een impact analyse. Een
handige optie hier is ook het tweede icoontje bovenin
het scherm wat de mogelijkheid geeft om de inhoud van
de tabel te exporteren. Hierbij maakt TOAD dan insert
scripts aan van alle (of een selectie van) rijen in
de tabel.
Terug in het sql window nog een aantal opties: Als je
een letter intypt van de tabel die je wenst en drukt
op , biedt TOAD een venster met tabellen waaruit
je kunt kiezen.
Als je de naam van een package intypt, gevolgd door
een punt en even wacht, geeft TOAD de mogelijke procedures
of functies van die package die je kunt kiezen.
De
boekjes-icoon linksboven het resultaatblok, geeft een
single row view van het resultaat. Door middel van F8
of sql-window, command recall is het mogelijk oude statements
op te halen en weer uit te voeren. Door in te geven
edit (of select rowid,t.* from <table>
t) kan de tabel worden gemuteerd. In de statusbalk onderaan
het scherm wordt het rode blokje nu groen. Als de plan-table
is aangemaakt, is het mogelijk (door ingeven van control-e)
om een explain plan van een statement te krijgen. Als
je een bepaald statement toch in sql-plus wilt laten
uitvoeren typ je deze in de editor in en kies je: SQL-window,execute
sql-window via SQL-PLUS in het menu. SQL-PLUS wordt
opgestart en na het ingeven van R en return wordt jouw
query uitgevoerd. Tot zover het sql-window.
TOAD heeft ook een sql-builder die de mogelijkheid geeft
via een grafische weergave een query, update of insert
te bouwen. Echter de commerciële sql-builder is anders
dan de freeTOAD sql-builder. Als je jezelf de tijd gunt
om de mogelijkheden van deze builder te doorgronden
zijn vrij simpele en snelle queries te bouwen. In ieder
geval gebruik ik de sql-builder om snel een insert statement
of update statement te maken van een tabel.
Overzicht van alle objecten
In het schema browser is het mogelijk een overzicht
te krijgen van alle objecten in een schema: tabellen,
views, procedures, functies, packages, triggers enzovoort.
Van al die objecten kunnen opties worden gekozen of
eigenschappen worden aangepast.
De opties die kunnen worden gekozen bij een tabel zijn
dezelfde die ook in het scherm stonden van een describe
van een tabel (zie hiervoor). Soortgelijke opties zijn
er voor een view. Daar echter is het select statement
te zien waarop de view gebaseerd is. Met één klik is
het mogelijk de definitie van dat script te laden in
een sql-window zodat deze eventueel kan worden aangepast.
Het is in de schema-browser op diverse plaatsen (objects,
data) mogelijk een filter te plaatsten. Dit is op zich
een handige optie, maar realiseer wel dat filters blijven
bestaan, ook als je uitgelogd en weer ingelogd bent.
Ik heb al een aantal ontwikkelaars verdwaasd zien zoeken
naar hun verdwenen objecten of rijen die uiteindelijk
alleen uitgefilterd waren..!
In het sequence window is de laatst afgegeven waarde
van een sequence te vinden. Dit heeft mij menig maal
geholpen om te verklaren waarom inserts fout gingen
nadat een lading data was geladen die buiten de sequence
om waren gegaan. Even snel een nieuwe sequence maken
kan met het create new sequence icoontje. Dit icoontje
komt bij alle objecten voor en geeft een makkelijke
interface naar het maken van een nieuw object.
Het tabblad voor constraints is een tabblad die ik niet
vaak gebruik daar deze constraints bij de tabel ook
worden opgesomd en ik ze meestal in deze context gebruik.
Let overigens hierop: standaard staat het filter op
het niet tonen van check constraints en referential
constraints! Het is door het aanklikken van een icoontje
mogelijk om constraints te enablen en te disablen.
Het triggers-tabblad geeft alle triggers die binnen
het schema bestaan. Het is hier mogelijk triggers te
disablen en enablen alsmede te compileren. Ik gebruik
dit tabblad als ik triggers aan het maken ben en ik
compilatiefouten krijg. Ik zoek in het trigger-tabblad
de betreffende trigger op en open deze in de procedure
editor. Als ik daar de trigger compileer krijg ik de
fout en gaat de cursor staan op de plek waar de fout
optrad.
Het procedure-tabblad
Het procedure-tabblad werkt ongeveer hetzelfde. Hier
is een onderverdeling gemaakt in functies, procedures
en packages. Bij packages is het mogelijk de package
uit te klappen en de public procedures en functies te
zien van deze package. Aanklikken van zo'n procedure
of functie laat de cursor springen naar de plek in de
code waar deze procedure of functie zich in de code
bevindt. Het is altijd mogelijk de code van een object
te openen in de procedure Procedure edit window, om
de code aan te passen of te debuggen.
Bij procedures en functies geeft de procedure window
een script met create or replace function/procedure
en de code die er bij hoort. Bij een package wordt hetzelfde
scherm geopend maar met een boomstructuur er naast van
de package. Klikken op een bepaalde procedure/functie
in deze boom
laat de cursor springen naar de juiste plek binnen de
code.
Voor
het debuggen van een object is de procedure-edit window
handig omdat deze met de cursor gaat staan op plaatsen
waar een fout optreedt, zodat je meteen weet waar je
de fout moet gaan zoeken. De code wordt met kleuren
leesbaarder gemaakt, wat bij het intypen van codes helpt
om te zien of je code correct is. Als je declare intypt
blijft de code zwart; bij het intypen van de laatste
e wordt de code blauw. Commentaartekst wordt groen gemaakt
wat je helpt als je teveel code uitgecommentarieerd
hebt.
Debug-statements
Als je een blok tekst selecteert is het mogelijk deze
in één keer tot commentaar te verwerken of het blok
te laten verspringen. Als je het begin selecteert van
een structuur (begin, if, loop), is het mogelijk het
eind van die structuur te laten vinden; best handig
als je door de bomen het bos niet meer kunt zien. Een
optie die ik ook veel gebruik is de mogelijkheid tot
het maken van debug-statements met behulp van dbms_output.
Als je een parameter selecteert en de rechtermuistoets
indrukt (of f10) krijg je de optie make output statement.
Deze maakt bijvoorbeeld de volgende statement aan:
DBMS_OUTPUT.PUT_LINE ( 'l_msg_code_length= ' || l_msg_code_length
);
welke je door pasten op de gewenste plaats in de code
kunt zetten. Het is ook mogelijk lege boodschappen te
laten maken om snel eigen commentaar te kunnen invoegen.
Voor het ontvangen van de server messages heeft TOAD
een dbmsoutput window die binnen een bepaalde sessie
alle messages opvangt. Op die wijze is op snelle manier
de code van messages te voorzien, deze uit te voeren
en de boodschappen in de message-window te volgen.
Nog meer mogelijkheden
Er zitten nog veel meer mogelijkheden in TOAD dan tot
nu toe zijn behandeld. Er zijn bijvoorbeeld schermen
waarin sessies kunnen worden gevolgd, database parameters
kunnen worden bekeken enzovoort. Het ontdekken van de
mogelijkheden is vooral proberen en zoeken omdat de
documentatie van TOAD wel te wensen overlaat.
Ik hoop dat ik in vogelvlucht het gemak van TOAD heb
kunnen aantonen. Ik zelf werk er, zoals gezegd, dagelijks
mee en vind nog regelmatig nieuwe features die het leven
nóg aangenamer maken. TOAD is gratis te downloaden via
http://www.quest.com/
free_software/ , waar ook een eventuele commerciële
versie is te bestellen.

|