Toad Users Guide
Toad Users Guide
This guide contains proprietary information, which is protected by copyright. The information in this guide is subject to change without notice and does not represent a commitment on the part of Quest Software. The software described in this guide is furnished under a license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of this agreement. No part of this guide may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose other than the purchasers personal use without the written permission of Quest Software, Inc.
2000 Quest Software, Inc. All Rights Reserved. Quest is a trademark of Quest Software, Inc. Quest Software, Inc. 8001 Irvine Center Drive Irvine, CA 92618 USA Tel. 949-754-8000 / Fax 949-754-8999
TOAD is a trademark of Quest Software, Inc. Other trademarks and registered trademarks used in this guide are the property of their respective owners.
Contents
C O N T E N T S
TOAD
Users Guide
INTRODUCTION.............................................................................................................................................7 LOGON/LOGOFF............................................................................................................................................9 LOGON OPTIONS ............................................................................................................................................12 CONNECTING TO PERSONAL ORACLE .............................................................................................................17 END CONNECTION..........................................................................................................................................17 SCHEMA PREPARATION ...........................................................................................................................19 BASIC NAVIGATION ...................................................................................................................................21 MOUSE ...........................................................................................................................................................21 KEYBOARD ....................................................................................................................................................26 HOTKEYS ADDING/ALTERING ......................................................................................................................28 RIGHT-CLICK MENUS ....................................................................................................................................30 Location of Right-Click Menus .................................................................................................................31 MAIN TOAD WINDOW TOOLBAR...........................................................................................................35 SQL EDITOR ..................................................................................................................................................37 TOOLBAR BUTTONS ........................................................................................................................................38 SHORTCUT KEYS ............................................................................................................................................40 USING THE SQL EDITOR ................................................................................................................................44 Selecting a table to edit .............................................................................................................................44 Commit ......................................................................................................................................................47 Explain Plan..............................................................................................................................................49 Offline Text Editor.....................................................................................................................................52 Recall and Add SQL ..................................................................................................................................55 OPTIONS FOR THE SQL EDITOR .....................................................................................................................60 EXECUTING STATEMENTS ..............................................................................................................................65 Execute SQL Scripts..................................................................................................................................66 Table/View Aliases ....................................................................................................................................67 CONFIGURING THE EDITOR ............................................................................................................................69 EDITOR OPTIONS ............................................................................................................................................78 General Options ........................................................................................................................................79 Highlighting ..............................................................................................................................................89 Key Assignments........................................................................................................................................95
TOAD
Users Guide
Auto Replace ............................................................................................................................................ 97 Code Templates ........................................................................................................................................ 99 RIGHT-CLICK MENU ................................................................................................................................... 101 SQL RESULTS GRID .................................................................................................................................... 102 Results Grid Right-Click Menu .............................................................................................................. 104 OPTIONS FOR THE DATA GRIDS ................................................................................................................... 117 LONG AND LONG RAW........................................................................................................................... 121 TIME VALUES.............................................................................................................................................. 124 SQL TEMPLATES ........................................................................................................................................ 125 DBMS_OUTPUT TO DEBUG PL/SQL CODE ............................................................................................. 127 MAKE CODE STATEMENT AND STRIP CODE STATEMENT ............................................................................ 128 OPTIONS FOR THE EDITORS ......................................................................................................................... 131 SQL EDITOR TASKS .................................................................................................................................... 134 PROCEDURE EDITOR.............................................................................................................................. 147 TOOLBAR BUTTONS .................................................................................................................................... 148 SHORTCUT KEYS ......................................................................................................................................... 151 USING THE PROCEDURE EDITOR ................................................................................................................. 153 NAVIGATOR LIST ........................................................................................................................................ 162 Navigator buttons................................................................................................................................... 162 OPTIONS FOR THE PROCEDURE EDITOR ....................................................................................................... 163 RIGHT-CLICK MENU ................................................................................................................................... 168 SOURCE CODE MANAGEMENT .................................................................................................................... 169 PROCEDURE EDITOR TASKS ........................................................................................................................ 171 PL/SQL DEBUGGER.................................................................................................................................. 183 REQUIREMENTS ........................................................................................................................................... 185 To run the PL/SQL Debugger ................................................................................................................ 188 To Activate the PL/SQL Debugger Registration Key ............................................................................. 188 DEBUG TOOLBAR BUTTONS......................................................................................................................... 189 DEBUG SHORTCUT KEYS............................................................................................................................. 194 USING THE DEBUGGER ................................................................................................................................ 195 THE STATUS PANEL INDICATORS ................................................................................................................ 197 OPTIONS MENU FOR DEBUGGING ................................................................................................................ 198 THE DOCKABLE WINDOWS ......................................................................................................................... 202 Breakpoints ............................................................................................................................................ 204 Watches .................................................................................................................................................. 210 Call Stack ............................................................................................................................................... 216 DBMS_OUTPUT.................................................................................................................................... 217 DEBUG FUNCTIONS ..................................................................................................................................... 221 PREPARING PL/SQL CODE FOR PRODUCTION ............................................................................................. 229 SCHEMA BROWSER ................................................................................................................................. 231 TOOLBARS .................................................................................................................................................. 232 RIGHT-CLICK MENUS ................................................................................................................................. 235
Contents
USING THE SCHEMA BROWSER ....................................................................................................................237 OPTIONS FOR THE SCHEMA BROWSER .........................................................................................................241 TABLES ........................................................................................................................................................251 INDEXES .......................................................................................................................................................283 PROCEDURES ...............................................................................................................................................287 TRIGGERS.....................................................................................................................................................293 SEQUENCES ..................................................................................................................................................296 VIEWS ..........................................................................................................................................................299 SYNONYMS ..................................................................................................................................................307 CONSTRAINTS ..............................................................................................................................................310 DB LINKS .....................................................................................................................................................314 JAVA ..........................................................................................................................................................316 SCHEMA BROWSER TASKS ...........................................................................................................................317 OTHER TOAD OPTIONS AND FEATURES ...........................................................................................321 SQL MODELER ............................................................................................................................................322 OBJECT SEARCH...........................................................................................................................................341 DDL REPORTS .............................................................................................................................................343 MASTER/DETAIL RECORD BROWSER ............................................................................................................345 PRIVILEGES ..................................................................................................................................................347 REBUILD TABLE ...........................................................................................................................................349 TOAD SECURITY.........................................................................................................................................351 VIEW MENU .................................................................................................................................................358 OPTIONS MENU ............................................................................................................................................359 General Options ......................................................................................................................................360 Oracle Options ........................................................................................................................................362 Startup Options .......................................................................................................................................365 Files Options ...........................................................................................................................................367 Source Control Options...........................................................................................................................369 Printing Options......................................................................................................................................371 TUNING SERVER STATISTICS........................................................................................................................372 SGA TRACE OPTIMIZATION.........................................................................................................................375 ESTIMATE TABLE SIZE .................................................................................................................................377 ESTIMATE INDEX SIZE..................................................................................................................................379 PROFILER ANALYSIS (ORACLE 8I ONLY) ......................................................................................................380 OBJECT BROWSER (ORACLE 8 OR 8I ONLY) .................................................................................................392 Objects Panel ..........................................................................................................................................392 Details Panel...........................................................................................................................................395 TROUBLESHOOTING................................................................................................................................403 FREQUENTLY ASKED QUESTIONS ................................................................................................................403 SQL*NET/NET8 INSTALLATION PROBLEMS ................................................................................................404 UPGRADES...................................................................................................................................................407 TOAD ADD-ON MODULES .......................................................................................................................409
TOAD
Users Guide
QUEST SOFTWARE SQLAB TUNER/XPERT .................................................................................................. 410 QUEST SOFTWARE SQL IMPACT ................................................................................................................. 411 REVEALNET PL/FORMATTER ...................................................................................................................... 412 REVEALNET KNOWLEDGE BASE ................................................................................................................. 413 QUEST SOFTWARE PRODUCTS AND SOLUTIONS .......................................................................... 415 DEVELOPMENT & DEPLOYMENT ................................................................................................................. 416 SQL Development................................................................................................................................... 416 Deployment ............................................................................................................................................ 416 Application Change Management .......................................................................................................... 417 PRODUCTION SUPPORT................................................................................................................................ 417 High Availability .................................................................................................................................... 417 Enterprise Monitoring............................................................................................................................ 418 Database Management........................................................................................................................... 418 INFORMATION AVAILABILITY ..................................................................................................................... 419 Enterprise Report Management ............................................................................................................. 419 Output Management............................................................................................................................... 419 QUEST SOFTWARE INFORMATION .................................................................................................... 420 TECHNICAL SUPPORT .................................................................................................................................. 421 INDEX........................................................................................................................................................... 422
Introduction
TOAD TOAD is a powerful low-overhead tool built around an advanced SQL and PL/SQL editor. It was designed from the developers perspective, and the result is an easy to use, fast, and effective interface. The GUI object browsers provide quick access to database objects. You dont have to be a PL/SQL expert to access database objects when youre using TOAD. You can view the Oracle Dictionary, tables, indexes, stored procedures, and more-- all through a multi-tabbed browser. PL/SQL script writers can use the advanced editing features to save time and increase productivity. Code can be created from shortcuts and code templates. Even create your own code templates. Use TOAD to Create, browse, or alter objects (tables, views, indexes, etc.) including Oracle8 TYPE objects Graphically build, execute, and tune queries Edit, debug, and profile stored procedures including procedures, functions, packages, and triggers Search for objects Find and fix database problems with constraints, triggers, extents, indexes, and grants
This guide is a how-to and reference for new users and users already familiar with TOAD. The guide does not cover every TOAD Window, Option, and Function. The guide covers the following windows: SQL Editor Procedure Editor Schema Browser PL/SQL Debugger (an optional feature) Once you are comfortable navigating around a few of these windows youll discover that the other TOAD windows have a similar design. The manual also covers the following major topics: logon/logoff navigation and shortcuts additional options in other TOAD windows optional add-on modules Note that this User Guide was prepared in February, 2000. New or changed TOAD features since February, 2000, are not reflected in this version of the TOAD User Guide. Note that colors are presented in the .PDF, which commercial TOAD users can download from www.quest.com. The printed version of the TOAD User Guide manual is printed in black and white, so the color differences are not always distinguishable. For details on installing and uninstalling TOAD, refer to the TOAD Getting Started Guide.
Remember, you can always access TOAD Help while in TOAD by pressing the F1 Key.
Logon/Logoff
When you Start TOAD a Login screen displays. The screen lists your previous connections (server, user, and the date and time of the connection). You can create a new connection to Oracle or select from a list of previous connections. If the Build Oracle Alias List checkbox is checked, TOAD will fill the database dropdown with the database aliases listed in the TNSNAMES.ORA file. If you double-click to select a previous logon from the list of previous logons, the default password is the same as the username. So, if this is your first time running TOAD, your password is your Username.
Here, BEQ-LOCAL is the database, the Username is SCOTT and the password entered is TIGER.
10 The previous connections list can be sorted by clicking on the Server, User, or Last Connect column header. Click once on a header and the associated list is sorted chronologically or in ascending order. Click twice on a header, and the associated list is sorted in descending order. The date format comes from the workstation setting in Settings > Control Panel > Regional Settings > Date > Short date style option.
Logon You can use Oracle usernames without passwords in TOAD. Whatever you enter in Database, Username, and Password boxes are passed to the database. If the database permits default passwords, then you can connect.
Server Login You get to this dialog via the File > New Connection menu item, or when TOAD starts up. You can create a new connection to Oracle or select from a list of previous connections. TOAD will fill the database dropdown with the names of previous sessions and any aliases in TNSNAMES.ORA.
Chapter 2
Logon/Logoff
11
2 3 4
12
Logon Options
The Login window has five options.
Force SQL*Net (ignore Net8) When checked, TOAD ignores the Net8 DLLs on your system and attempts to connect to Oracle via the SQL*Net DLLs. When the Oracle Home has been found, the DLL with the HIGHEST revision number is loaded. If Force SQL*Net is chosen, Net8 DLLs are skipped. This also means that a client install with just Net8 will result in a failure.
Use SQL*Net Compatible Net8 This option only applies to Oracle 8.0.x databases. When checked (ON), you get the row and character position from bad queries, and the cursor is positioned to the point of error. The downside is that no Oracle 8 functions are supported. When unchecked (OFF), you do not get the error row or column position but you do get the Oracle 8 functions. This option does not apply to Oracle 8i because Oracle restored the error position function. It assumes that Net8 is installed. The DLL is loaded according to the above but the new Net8 functions are ignored.
Build Oracle Alias List This is the default. When this option is checked, TOAD cycles through your TNSNAMES.ORA file and the next time you start TOAD it builds connection names in the Database dropdown list.
Use Last Oracle Home This will use the Oracle Home that was last installed.
Use the TOAD Home This will use the Oracle Home selected through the SQL*Net Help dialog.
Chapter 2
13
In addition, TOAD can accept logins where the operating system validates the user and password. Select the database alias, and leave the Username and Password textboxes empty. Oracle will prefix your workstation login, and attempt a login. To configure this on the server side, the init.ora initialization parameters file must have: remote_os_authent = true os_authent_prefix = "OPS$" or whatever prefix you select. For example, Joe Smith logs onto the ORA805 database, enters ORA805 in the Database textbox, and leaves Username and Password empty. His NT login is JSMITH, which gets prefixed with OPS$ giving a username of OPS$JSMITH. Oracle attempts a login and TOAD starts up. The next time you bring up the Server Login window, any previous logins that were O/S authentication logins will have username = EXTERNAL. So, you dont need to type over the word EXTERNAL in the username textbox when reconnecting.
14
SQL*Net Help button This button displays all Oracle Homes and lets you pick one Oracle Home as your TOAD Home. It also lets you see which Oracle Homes are valid installs. The information can be copied to the clipboard and pasted into an email for technical support issues.
If a SQL*Net entry is not valid, you can click the Advice button for suggestions.
Chapter 2
Logon/Logoff
15
Save Passwords for Oracle Connections One of the TOAD options is Save Passwords for Oracle Connections. The default for this option is unchecked. This option involves the TOAD.INI file. Normally, only the schema and database are saved to the TOAD.INI file for each new Oracle connection. When unchecked, TOAD puts in the Username for the password. When checked, the password is saved in TOAD.INI. Before you check the Save passwords for Oracle Connections box, be sure you work in a secure environment where your TOAD.INI file will not fall into the wrong hands.
To turn on the option for TOAD Save Passwords for Oracle Connections
1 2 3 Go to View > Options > Oracle. Click Save Passwords for Oracle Connections to check that option. Either quit TOAD and restart OR Click the Save All Options button in the main toolbar. If you do not check the Save Passwords for Oracle Connections checkbox, then the username is copied to the password box because most development schemas are created as user/user. So, during login, the password = Username.
Encrypt saved passwords Next to the Save Passwords option is the Encrypt saved passwords box. If checked, the password is encrypted so that if the TOAD.INI file is pulled into a text editor, only encrypted text is displayed. So, another user cant simply see your password by pulling the TOAD.INI file into a text editor.
16
If you have previous passwords in the TOAD.INI file and choose to encrypt a password, then all previous passwords are automatically encrypted. So, you dont have to go through and encrypt each password individually. The same rule applies to unchecking Encryption. All previous passwords will also have their encryption feature removed.
Chapter 2
Logon/Logoff
17
For Schema/Passwords try one of the following pairs: DEMO/DEMO SCOTT/TIGER SYS/CHANGE_ON_INSTALL SYSTEM/MANAGER
End Connection
You might want to close a connection without exiting TOAD.
All windows associated with that session are closed. If you have any Prompt to save before close options on, you will be prompted to save the editor contents so that they are not discarded. TOAD also has an End All Connections option, accessed from the File menu, which will close all connections.
Schema Preparation
The following features of TOAD require the creation of database objects: Saved and Recalled Explain Plans, TOAD Features Security, TOAD Source Control, and Oracle 8i Profiler Analysis. The scripts to create these tables are in the \TEMPS folder as follows: Saved/Recalled Explain Plans TOAD Features Security TOAD Source Control Oracle 8i Profiler Analysis TOADPREP.SQL TOADSECURITY.SQL TOADVCS.SQL TOADPROFILER.SQL
You can create these objects in every schema in which you intend to use them (i.e., every schema would have these same tables) but the ideal solution would be to create a new user TOAD, create the objects once in the schema TOAD, and grant access to them to all users via synonyms. These scripts contain the statements for accomplishing all of this, however, the connection to Oracle used to execute the script must have the rights to do so. If you do not want to create a separate TOAD schema or if you want to create the required tables in several schemas, you can load and execute the script file NOTOAD.SQL for Saved/Recalled Explain Plans. This script will place all of the necessary objects for Saved/Recalled Explain Plans in the current schema for the current Oracle session. NOTE: in View > Options > General tab, you can specify the name of the Explain Plan table that TOAD should utilize. If you change the default setting from TOAD_PLAN_TABLE to PLAN_TABLE, TOAD will use your existing table and you do not have to create the TOAD table. On the other hand, if you still do not execute the TOAD scripts, you will not be able to recall previous Explain Plan results.
20 It is not necessary to execute TOADPREP.SQL in order to use TOAD. If you do not execute the script, TOAD will not display previous Explain Plan results. Explain Plan will still function on the SQL Edit window providing you specify PLAN_TABLE on the options window rather than TOAD_PLAN_TABLE. If you decide NOT to store previous Explain Plan results, you should disable the option Save previous Plan results on the Options window. TOAD uses the Windows User name plus the date and time to generate a unique statement id for the Explain Plan. If the user has a longer than normal user name, you might need to expand the Statement_ID column of the Plan table.
Basic Navigation
This section contains basic information about TOAD buttons, Hot Keys, Right-Click Menus, etc. If you are unfamiliar with windows navigation/operation, or you have come across a button you dont understand, this section should help.
Mouse
TOAD is designed to be used with a mouse. In addition to pointing and clicking on items, the right-click button displays Right-Click Menus that are associated with different areas of TOAD. Right-Click Menus are discussed in the Right-Click Menu section of this chapter (page 30).
Some sections will have a list of categories with expand buttons next to each category item. Click the expand symbol to expand the list. This is similar to doubleclicking a file folder in Explorer to open its contents. If the category is already expanded, you can click the collapse symbol to collapse the list.
22 Drill down buttons indicate another level of information. Click the drill down button to drill down another layer, which is usually another window.
Clicking on the drill down button on this window will display a fonts window.
Radio buttons
Radio buttons let you select one choice. You cannot select more than one radio button from a radio button list at the same time. To select a radio button click in the button area (or on the corresponding text to the right of the button) and a black dot will display in the selected button.
Chapter 4
23
You will find checkboxes throughout TOAD. The program is designed to be flexible, and with checkboxes you control how TOAD looks and functions. Unlike the radio buttons, you can check multiple items in a checkbox list. Remember, options youve set in one checkbox might affect options in another checkbox. To place a check in a checkbox or remove a check from a checkbox Click in the checkbox area OR Tab to the area with the checkboxes and press the up and down arrow keys until your option is highlighted. Press the space bar.
24 Dropdown lists
test
Dropdown lists are used throughout the TOAD screens. The down arrow activates a dropdown list from which you can choose an item. To access the dropdown list, click the down arrow.
Textboxes
For textboxes, click in the textbox area and then type in the text or numeric entry.
Chapter 4
Basic Navigation Types of Message Boxes TOAD uses the industry standard symbols for its four types of message boxes. i ? X ! This indicates an information box. This indicates a question box that requires a decision from you. This indicates a stop message. This indicates an exclamation (very important) message.
25
26
Keyboard
You can use the keyboard for navigation and selection for part of the TOAD menus.
TAB The TAB key lets you advance the cursor forward from one area of a window to another area. The first item in the area you tab to will highlight. For textboxes, you can TAB to the textbox and the text cursor displays ready for you to type.
UP/DOWN ARROWS The UP ARROW and DOWN ARROW let you move your cursor up and down the items or list of whatever area your cursor is positioned in. In a dropdown list the UP and DOWN ARROWS scroll through the choices in the list. The UP and DOWN ARROWS are referred to as the UP and DOWN keys.
LEFT/RIGHT ARROWS The LEFT ARROW and RIGHT ARROW let you move left and right across a list of radio button choices. Once you reach your choice, TAB to move out of the area (or click outside of the area with your mouse) and your choice remains. You can also use the UP/DOWN arrow keys to move through the radio button choices. For the Expand and Collapse buttons the LEFT ARROW collapses the list and the RIGHT ARROW expands the list. You can also expand and collapse buttons using the numeric keypad using the <+> and <-> buttons. The plus sign + expands the list and the minus sign - collapses the list. For hierarchy lists, the multiplication sign * expands to all levels.
SPACEBAR The spacebar lets you check and uncheck checkboxes or click buttons with focus.
Chapter 4
27
ENTER is similar to a mouse-click. It activates whatever button has focus. For example, if you <TAB> to a CANCEL button and press <ENTER>, you will cancel your choices and exit the window. Pressing <SPACEBAR> on buttons with focus also clicks the buttons.
Not Accessible by Keyboard TOAD was designed for a mouse, and some areas of TOAD can only be accessed by using the mouse. For example, drill down buttons cannot be tabbed to. You have to click the drill down button to bring up its associated window.
28
Hotkeys adding/altering
The Editor Options Dialog list of key assignments contains a list of the basic editing functions. <CTRL><INSERT>, <SHIFT><INSERT>, and <SHIFT><DELETE> are mapped to copy (<CTRL>C), paste (<CTRL>V), and cut (<CTRL>X) automatically. When you highlight a command, you can alter the key assigned to that command OR add an additional key. All commands allow for two-part keystrokes; for example, the old WordStar commands such as Control-K, 0 for the command "set Bookmark 0."
10 Your second key, 0, displays in the window. 11 Click Finish. 12 The setting is saved.
If Key2 shows anything other than <none>, that command expects a second keystroke.
Chapter 4
29
Note that key strokes such as <CTRL>J or <SHIFT><INSERT> are ONE stroke keys.
DO NOT CLICK the buttons ADD or DELETE unless the keys you just entered should be in addition to the default keystrokes OR you want to remove the displayed keystrokes entirely. If you click DELETE while looking at a command, the hotkey for that command is removed.
This options tab is also useful for documenting the default keystrokes and key-activated functions.
Right-Click Menu button OR F10 Key access menus Schema Browser SQL Editor Procedure Editor
See the Right-Click Menu topic (page 30) for more information.
30
Right-Click Menus
This section gives an overview of the Right-Click Menus. The items in different Right-Click Menus are discussed in detail in the applicable sections of this guide. For example, the Debugger Right-Click Menu is discussed in detail in the Debugger chapter. A Right-Click Menu is specific to the window that you are in. Some items in the menu are shortcuts to commands or windows that can be found elsewhere, and some items are unique to the Right-Click Menu and cannot be found anywhere else in TOAD.
Right-click in the SQL Editor Results Grid and this Right-Click Menu displays.
Chapter 4
Basic Navigation
31
SQL Results Grid The data grid, or SQL results grid, Right-Click Menu includes the following functions: Memo Editor, Print Grid, Save As, Select Columns, Export to Flat File, Find Data, Copy Row, Record Count, Number of Fixed/Anchored Columns, Row Height, Allow Multi-Select, Grid Font, Sizing Column widths to Data, Row Numbers, and Row Highlight.
Procedure Editor Editor The Procedure Editor Right-Click Menu includes the following functions: Paste, Upper Case, Lower Case, Set Bookmark, Goto Bookmark, Debug, Describe, Search Knowledge Base, Compile, Save to File, Load from File, Check in Source, Unix Style Save, Load Procedure, Show Navigator List, Comment Block, Uncomment Block, Format Statement (requires PL/Formatter from RevealNet), Blank DBMS Output Statement, Make DBMS Output Statement, Find Closing Block, Show Edit Toolbar, and Editing Options.
32 Schema Browser Object Lists The Right-Click Menu over the label tabs on any of the main lists on the left hand side of the window displays a menu to show/hide the main panels. For example, to hide the Synonyms list if you do not require access to Synonyms. You cannot hide the Tables tab.
Tables Tab Create Script, Export Data, Privileges, Truncate, Analyze, Add Column, Add Index, Add Constraint, Show Column Comments in List
Procs Tab Save to File, Compile, Compile Dependencies, Load in Procedure Editor, Execute Procedure, Privileges, Copy Source to Clipboard, Copy Selected Source to Clipboard, and Print Source
Views Tab Compile, Format SQL, Copy to Clipboard, Load Source in SQL Editor, and Show Column Comments in List
Data Grids The Data grids for Tables and Views also has a Right-Click Menu for the following functions: Memo Editor, Print Grid, Posting Changes/Edits, Selecting Columns, Saving to File/Clipboard, Row Height, Number of Fixed/Anchored Columns, Copy Row, Record Count, Allowing Multi-Select, Displaying Row Numbers, and Row Highlight.
Chapter 4
Basic Navigation The Main Toolbar Right-Click Menu Right-Click on the main TOAD toolbar to display a right-click menu that lists a display option and a save command.
33
Show Main Toolbar The default is checked. When this option is checked the main toolbar will display. When this option is unchecked, the main toolbar is not displayed.
Save TOAD Options Saves external files which are basically your current TOAD settings and values. This is useful if you are about to run a query that could crash or run for a long time. You might want to Save TOAD Options before running that query, just as a precaution. It saves all TOAD options to files in your TOAD and TOAD\TEMPS folders including settings from the TOAD Options dialog, Editor Options settings, Recall Previous SQL lists, Lists of MRU (Most Recently Used) files, Table Name alias list, etc. NOTE: The Save TOAD Options button from the main toolbar does exactly the same thing as the Save TOAD Options command that is in the main toolbar Right-Click Menu. The Save TOAD options button
When you first run TOAD the Main TOAD Window displays.
Open a new SQL Edit window with the current active connection Open a new Schema Browser window with the current active connection Open a new Procedure Edit window with the current active connection Open a new SQL Modeler window with the current active connection Open a new Explain Plan window with the current active connection Open a new DBMS_OUTPUT window with the current active connection Open a new Object Search window with the current active connection Save all options normally saved when exiting TOAD Open a modal TOAD Reports dialog with the current active connection Open a new Offline Text Editor window (no Oracle connection required) Toggle PL/SQL Profiling ON or OFF Show Windows by Connection, minimizes non-selected MDI child windows, restores MDI child windows for the selected Oracle connection Open a new Oracle Connection to the database
36
SQL Editor
This section introduces the SQL Edit window. If you have never used TOAD, the SQL Edit window is a good starting point. The window contains an editor to compose SQL statements or scripts and a results grid to display the results from SELECT SQL statements. At the end of the chapter step-by-step examples are provided for various SQL Edit procedures. The SQL Editor lets you type, edit, execute, and tune. When you first start TOAD you are in a SQL Edit window. The SQL Edit window has two panels. The SQL Editor is the top panel and the Results Grid, the lower panel, displays fetched data. A horizontal splitter between the editor and results grid lets you size each component accordingly.
3 ways to invoke the SQL Edit window Click the first button in TOADs main toolbar. Select menu item Database > SQL Editor. Set the SQL Editor to StartUp on new connection in the View > Options > Startup dialog.
The SQL Edit window has two toolbars. The top toolbar is for SQL Edit specific functions. The bottom toolbar, or edit toolbar, is for common editing functions such as copy, cut, and paste. The edit toolbar is also on the Stored Procedure Edit window.
38
Toolbar buttons
Execute the complete or highlighted statement Execute the statement at the cursor Execute all of the current window as a script Recall Previous SQL statement Recall Personal SQL statement Insert a row into an editable SQL Results Grid Delete the current row of data from the SQL Results Grid Update SQL Results Grid edits to the database (not a commit!) Reverse changes to the current query not yet posted Perform an Oracle Commit, which affects all open windows for the current session Load a file into the SQL editor Specify a file to save the current editor contents Save to File Take the current SQL statement and create a development tool code statement Take a development tool code statement and Strip out the Oracle SQL statement Execute Explain Plan for the current statement
Chapter 6
SQL Editor
39
Display/Close the embedded DBMS_OUTPUT window Tune the selected SQL statement with the SQLab Xpert/Tuner module Change active session for this window
40
Shortcut Keys
F1 You can press F1 while in the SQL Edit window to display a help file that lists the shortcut keys.
A few keys to note F4 Describes an item (table, view, procedure, function, or package) in a popup window F6 Toggles the cursor between the SQL Editor and the Results Grid F10 Displays the Right-Click Menu for the section (Editor or Results Grid) that the cursor is in <CTRL>T Columns Dropdown You put the cursor on the table name and a popup window lists the columns in that table. <ALT><UP> Goes to the previously executed statement that youve run <ALT><DOWN> Goes to the most recently executed statement <HOME> Goes to the beginning of the line <CTRL><HOME> Goes to the top of the editor, in the results grid, goes to the first row of the column the cursor is in <END> Goes to the end of the line <CTRL><END> Goes to the last row of the column you are in (See CAUTION note)
Chapter 6
SQL Editor
41 CAUTION: You need to be careful when using <CTRL><END>. TOAD shows queries quickly. Even in a table with a million rows the response is almost immediate. This is because TOAD only fetches and displays what it needs. But, with <CTRL><END> TOAD has to fetch EVERYTHING. This can be a long process. So, if a table has only a hundred rows TOAD can quickly fetch data when you press <CTRL><END>, but if a table has a million rows, the process could be time consuming. If you need to examine rows at the end of a large recordset, refine your query with something like:
Select * from table Where primary_key > value
42
KEYSTROKE F1 F2 F3 <SHIFT>F3 F4 F6 F7 F8 F9 <CTRL>F9 <SHIFT>F9 F10 F12 <CTRL>A <CTRL>C <CTRL>D <CTRL>E <CTRL>F <CTRL>G <CTRL>L <CTRL>M <CTRL>N <CTRL>O <CTRL>P <CTRL>R
FUNCTION Display SQL Editor section of TOAD Help file Toggle between full screen Editor and Editor/Results Grid display Find next occurrence Find previous occurrence Describe Table, View, Procedure, Function, or Package in popup window Toggle cursor between Editor and Results Grid Clear all text Recall previous SQL statement Execute statement Verify statement without execution (parse) Execute current statement at cursor Display Right-Click Menu Pass the editor contents to the specified External Editor Select all text Copy Show Procedure Arguments Execute Explain Plan on the current statement Find text Goto line Convert text to lowercase Make Code Statement Recall Named SQL Statement Open a text file Strip Code Statement Find and Replace
Chapter 6
SQL Editor
43
<CTRL>S <SHIFT><CTRL>S <CTRL>T <CTRL>U <CTRL>V <CTRL>X <SHIFT><CTRL>Z <ALT><UP> <ALT><DOWN> <CTRL><HOME>
Save File Save File As Display Columns dropdown Convert text to uppercase Paste Cut Redo last Undo Display Previous Statement Display Next Statement (for use after <ALT><UP>) In the data grids, go to the top of the recordset In the results grid, go to the first row of the column the cursor is in In the editors, go to the first row, first column of text. In the Data Grid, go to the end of the recordset In the editors, go to the last row, last column of text. See CAUTION NOTE in this section. Activate code completion template Cycle through the collection of MDI Child windows Execute current SQL statement at cursor Auto complete tablenames
<CTRL><END>
44
And press <CTRL><ENTER> or F9 to execute, you can edit the data. Alternatively, you can type the TOAD EDIT command to translate the command into a SELECT SQL statement with ROWID column.
Edit dept
and press <CTRL><ENTER> or F9 to execute. Then you can edit the data.
If you want to choose a table, and cant remember the title or schema, click the Show Tables window button and the Table Names Select window displays from which you can choose the owner and the table. You can even click on a table name and drag and drop that name to the SQL Edit window.
Chapter 6
SQL Editor Then type Edit before the name, add a space Example: edit dept Go to the end of the command line and press <CTRL><ENTER>. Your selected table displays in the Results Grid.
45
Status Panel Indicator: green=editable red=not editable Notice the status panel indicator at the bottom of the screen turns green. This indicates that the table data can be edited. When the indicator is red, that indicates that the data is not editable. That means the data cannot be edited, but it can still be selected and copied.
46 Single Record View Single record view button Also notice the Single Record View button. This button is present throughout TOAD data windows and result grids. It is located on the top left of the table.
Click the Single Record View button and the Single Record View window displays for the record of the item youve selected. The arrow buttons in the window let you move up and down the columns. You can also insert records, delete records, and post edits.
Here, the location for Department 30, Sales, was changed from Chicago to New York.
Insert record Delete record Post edit Cancel edit Refresh data
Chapter 6
SQL Editor
47
Commit
Commit
The Commit command executes an Oracle Commit, sending data to the database. When you edit a cell in a table, a transaction occurs. Other users can only see the old data until you commit. Commit writes the transaction to the database. Rollback cancels that transaction. You can choose Commit from the Database > Commit menu item or click the Commit button. This performs a commit for all windows that are open in the current session. Commit can be ON or OFF. The status panel on the bottom of the window shows you the status of Commit. Data is not available to other users until you choose Commit. So, with Commit OFF you can make changes without affecting other users.
48
Update Grid Edits As soon as you start editing a table, the Update Grid Edits button is enabled. The Update Grid Edits command sends the latest edits (or data) to the database. If autocommit is ON at the time the Update Grid Edits is activated, the data will be committed. If autocommit is OFF, the data is buffered in the transaction. When you edit data in a row, the changes are not sent to the Oracle transaction buffer until you change rows (click in another row). However, if you only have one row, you cant change rows. Thats where the Update Grid Edits command is useful. You can edit in the row and then, without changing rows, click the Update Grid Edit button, and the data is sent to the Oracle transaction buffer. If autocommit is OFF, it stays in the buffer. If autocommit is ON, then the data is committed. So, if Commit is ON and you type in a row and then change rows, the data is available to other users. With Commit OFF, you can make changes, but other users will see the old data, until you choose Commit.
Reverse Changes Next to the Update Grid Edits button is the Reverse Changes button. This lets you reverse the changes youve made that have not yet been posted. For example, typing in col 1, pressing <TAB>, typing in col 2, pressing <TAB>, then clicking the Reverse Changes button will reset col 1 and col 2 to their previous values.
Chapter 6
SQL Editor
49
Explain Plan
Explain Plan (also called Execution Plan) displays steps that will occur in the selected SQL statement. This lets you visually see the steps. The purpose of Explain Plan is to determine the execution plan Oracle follows to execute a specified SQL statement. The Explain Plan function inserts a row describing each step of the execution plan into a specified plan table. If you are using cost-based optimization, Explain Plan also determines the cost of executing the statement.
NOTE: Viewing previous Explain Plans via View > Explain Plan will not work unless you first run the TOADPREP.SQL script which is explained in this section. <CTRL> E Explain Plans in the SQL Editor will work regardless of TOADPREP.SQL, but if you have not run TOADPREP.SQL you must to set the View > Options > Oracle > Explain Plan Table name option to point to your own plan table (Plan_Table).
TEMPS TOADPREP.SQL The Explain Plan window will not display previous Explain Plans unless you run TOADPREP.SQL which creates the temp tables needed for storage and retrieval of Explain Plans. TOADPREP requires you to step through and execute each statement in the script. This is explained in the README file. You must have System or DBA access in order to run the TOADPREP.SQL script. Excerpt from the README file:
For the TOAD temp tables, run TEMPS\TOADPREP.SQL to create a separate TOAD schema. Or if you do not want a separate schema for the TOAD temp tables, run TEMPS\NOTOAD.SQL.
50
So, the first time you run TOAD you need to execute TOADPREP so it can create the two tables of information that Explain Plan needs (TOAD_PLAN_SQL and TOAD_PLAN_TABLE).
Chapter 6
SQL Editor Notice the Explain Plan results have expand and collapse buttons. They let you display the details that you need to see. If you attempt to activate an Explain Plan and you have not created the needed TOAD temp tables, you get an error message telling you the table or view does not exist.
51
You can copy the Explain Plan hierarchy to the Windows clipboard or send it to the printer with a right mouse-click over the Explain Plan output and selecting either the Copy to Clipboard or Print Results menu item
View Explain Plan View Explain Plan displays a list of the previous Explain Plans that youve executed.
NOTE: You must have the View > Options > Oracle > Explain Plan Table Name menu item entered or you will not be able to view previous plans. The default entry is TOAD_PLAN_TABLE.
Refer to Oracle documentation for how to read and interpret an Explain Plan output.
52
TOAD has an Offline Text Editor window. So, you can edit scripts without being connected to an Oracle database. For example, by modifying the script files that define how the TOAD Editor should highlight keywords, you could edit HTML files, and have TOAD highlight the HTML markup tags in various colors. The file language types supported are: PL/SQL HTML INI JAVA TEXT The file associations for file name extension and language type is set up in the TOAD > Options > Files dialog. Each language type supports separate lists of: Editor Options Key Assignments Editor Parser Scripts Auto Substitutions
Chapter 6
SQL Editor
53
54
Chapter 6
SQL Editor
55
The purpose of Add/Recall SQL is to create a list of previously executed SQL statements in order to recall them at a later date, instead of having to retype them. There are three different types of Add/Recall SQL statements: Recall Previously Executed Recall Personal SQL Recall Named SQL The recall and add SQL dialogs can be accessed through the SQL-Window menu.
SQL Recall Window The SQL Recall window has buttons that let you move to the Next or Previous statement. It also has buttons to Append, which means add the statement to your current SQL script, or Replace which would replace your current script with whatever SQL statement you select. You can copy statements to the clipboard by clicking the Clipboard button. The Remove button lets you remove selected statements from your list. Cancel closes the window and returns you to the Editor. There are also tabs to display All SQLs and Single SQL which show more detail of a long SQL statement. On the All SQLs tab, the grid row height is vertically adjustable on a row by row basis. Move the mouse over the record selector and drag up or down. You can even search by clicking in the SQL Contains textbox, typing the text you want to search for, and clicking GO. The list will scroll and highlight the statement that contains your search item.
56
SQL Command Recall or Recall Previous SQL To Recall a SQL command Click the Recall Previous SQL button in the SQL Edit window toolbar OR Press F8 OR Select SQL Command Recall from the SQL Window.
The SQL Statement Recall window displays. It includes options for searching in SQL statements, deleting SQL statements, and displaying all or selected SQL statements. The Recall window displays a list of the last X number of statements executed. The default number is 100, but you can change this in the options. See the Options for the SQL Editor topic on page 60 for more details. The list of SQL statements is written to and read from the SQLS.DAT file from the TOAD folder.
Running a Recalled SQL Statement After a SQL statement is recalled and placed in the SQL Editor, press <CTRL><ENTER>, or <SHIFT>F9. TOAD will search backwards one line from the current cursor position to find a SQL statement to execute.
Add to Personal SQLs Selecting this command from the SQL-Window menu adds the SQL statement thats in the SQL Editor to your personal SQLs. You can later recall the statement by using the Recall Personal SQL command. TOAD saves all statements in this list between sessions of TOAD, in a file named PERSSQLS.DAT in the TOAD folder.
Chapter 6
SQL Editor
57
Recall Personal SQL You access the window by clicking the Recall Personal SQL button in the SQL Edit toolbar or via the SQL-Window > Recall Personal SQL menu item. You have to add a Personal SQL Statement before you can Recall a Personal SQL Statement. Recall Personal SQL only lists the ones that youve added to the list. This window functions identically to SQL Statement Recall except that the list and order of statements is controlled by the TOAD user.
Add to Named SQLs This window lets you add a SQL statement to a users named favorite list.
Recall Named SQL You get to this dialog via the SQL Window > Recall Named SQL menu item (or press <CTRL>N).
58 Use this dialog to pick a SQL statement from your named list of SQLs, then copy it back to the SQL Edit window for execution. The Recall SQL window for Recall Named SQL lists the names on the left panel and highlights the corresponding SQL statement on the right panel. The SQL statements are stored in the NAMEDSQL.DAT file in the TOAD\TEMPS folder. This window is a combination of SQL Command Recall, Recall Personal SQLs, and Recall Named SQL.
More about Recall Every statement executed in a SQL Edit window is added to a most-recent-first list. You can select/recall a statement from this list on the Statement Recall window. You can also remove statements from this list. All statements (to a maximum set in User Options) are saved between sessions of TOAD, in the file SQLS.DAT in the TOAD folder. You can scroll through the previous statements directly within a SQL Editor edit panel by pressing <ALT> <UP> or <ALT> <DOWN>. You can check the Save Only Statements that are Valid checkbox in the TOAD Options dialog, SQL Edit tab. This checkbox item will only save those SQL statements that executed successfully. This prevents the list from containing misspelled column names, SQL clauses, etc. Append versus Replace There is an option on the View > Options > SQL Editor tab > SQL window button on SQL Recall window Appends rather then replace. This changes the default button to be set to Append rather than Replace for the SQL Recall window. So, when you press F8 to recall a statement (or recall a statement via a menu item), if Append rather than Replace was checked, the Append button will be the default button, but you can still select the Replace button. If you double-click in the grid it activates the default button. If you select a statement in the grid and press <ENTER> it also activates the default button.
Chapter 6
SQL Editor Bind Variables You can execute SQL statements in the SQL Editor using bind variables, where a colon leads the bind variable name, e.g.,
Select * from employee where last_name = :NAME
59
And TOAD will present the Variables popup window for you to input the value for the NAME bind variable. These values you enter are stored and retrieved for subsequent queries in the PARAMS.TXT file in the TOAD\TEMPS folder.
Substitution Variables You can also execute SQL statements with substitution variables, where the ampersand leads the substitution variable name, e.g.,
SELECT * FROM &schema.EMPLOYEE
And TOAD will present the same Variables popup window for you to enter the value for &schema. If you want to query DEMO.EMPLOYEE, enter DEMO. If you wanted to query SCOTT.EMPLOYEE, enter SCOTT.
60
Chapter 6
61
If checked, TOAD will issue each query in a separate thread. The Cancel button will display on the SQL Edit window toolbar to the right of the Change Active Session button, enabling you to cancel a long running query before any data is returned. The disadvantage to having this option checked is that more processing must occur, so data retrieval is slower.
Save Only Statements that are Valid Default Unchecked If this option is checked, TOAD will only save the SQL statements that ran successfully, for recall via F8 SQL Statement Recall dialog.
# of SQL Statements To Save textbox The default number is 100. This box lets you enter a custom number of SQL statements to save to your Recall Previous SQL list. The list is saved to and retrieved from the SQLS.DAT file. Only the most recently used SQL statements are saved.
Save SQL Statement Before Statement Execution Default Unchecked If checked, TOAD saves the SQL statement before executing it, in case something happens during the execution. If this option is checked, the Save only statements that are valid option will not apply.
Show Columns Rather Than View Text Following a DESCRIBE Viewname Default Checked If checked, TOAD will show the columns of the view, in the SQL Edit results grid. If unchecked, TOAD will fetch and show the view text in the SQL Edit window.
62 Process Update, Insert, and Delete Statements in Background Default Unchecked If this option is checked, UPDATE, INSERT, and DELETE statements will be processed in the background. When executed, the statements are actually copied to a separate status window to provide a visual indication that the statement is running. Processing lengthy statements in the background frees up TOAD as well as your machine for other tasks.
Show Editor Toolbars on SQL Editor and Procedure Editor Default - Checked The SQL Editor and Procedure Editor have two rows of buttons (two toolbars). Displaying the second row of buttons, known as the editor toolbar, is optional and can be controlled via this option. If this option is checked, the editor toolbars will display. Note: the editor toolbar can also be displayed or hidden via the Right-Click Menu of the editors.
Allow F7 to Clear All Text Default Checked If checked, you can press the F7 key to clear all text from the SQL Edit window, without a confirmation dialog. If unchecked, F7 will not work, but you can still use the Edit > Clear All menu item. Note: Text deleted via F7 is not reversible by Edit > Undo.
Prompt to save contents when closing editor Default Unchecked If checked, TOAD will prompt you to save any text you typed in the editor.
Chapter 6
SQL Editor This dropdown list lets you select the language syntax for TOAD to convert a SQL statement into (Make Code Statement function) and out of (Strip Code Statement function). Currently, Delphi, VB, C++, Java, and Perl are supported.
63
Scan Statements for Bound Variables Before Execution Default Checked If checked, TOAD will scan SQL statements for bound variables and ask you for the values before execution. If unchecked, TOAD will tell you that the variables are not bound.
Allow RTF when copying to/from clipboard Default Checked If checked, TOAD will copy color markups, for pasting into email or other RTF enabled applications. If unchecked, the text will be copied to the clipboard as standard black text.
SQL Window button on SQL Recall Window appends rather than replaces Default Unchecked If checked, the default button and behavior will append the selected SQL to the current contents of the SQL Edit window. If unchecked, the default button and behavior will REPLACE the current contents of the SQL Edit window.
Always Show Statement Execution Time (overrides ROW:COL Display) Default Unchecked If checked, TOAD will show the statement execution time in the status panel. If unchecked, TOAD will show the statement execution time until you perform further editing, then the status panel will show the row and col location of the cursor in the editor.
64 If checked TOAD will present you with a popup window of complete object detail when executing a "DESC object_name" statement. If you prefer the results to be presented in the SQL Results grid, then uncheck this option. Regardless of this option setting, selecting an object and pressing F4 will use the popup windows.
Use StayOnTop Popups Default Checked If checked, the F4 popup Object Describe windows will use the windows Stay on Top feature.
Only show one SQL Editor per database connection Default Unchecked If checked, TOAD will permit only one SQL Editor window to be opened per connection. This is similar to the one Schema Browser or one Procedure Editor per connection options.
Chapter 6
SQL Editor
65
Executing Statements
If the SQL Edit window has a single statement that you wish to execute
Press F9 OR Click the Execute Statement button on the toolbar.
To execute a single statement among many statements (separated by at least one blank line)
Click or place the caret/cursor within the statement you want to execute AND Press <SHIFT> F9 OR <CTRL><ENTER> OR Click the Run Current Statement button on the toolbar.
TOAD supports query statements, DDL statements, blocks of procedure SQL, etc.
66
etc.
Chapter 6
SQL Editor
67
Table/View Aliases
Setting up table or view aliases permits a shortcut for entering columns of a query. The ALIASES.TXT file is in the TOAD\TEMPS directory. It should look like this:
table_name=alias
such as:
AAX_ACCESSGROUP_APPLICATION=aax ACA_ACTIVITY_ACTION=aca ACC_ACTIVITY_CATEGORY=acc ACD_ACTION_DESCRIPTION=acd ACP_ACTIVITY_CONTACT_PARTIC=acp ACT_ANALYSIS_CATEGORY_TYPE=act ADD_ADDENDUM=add ADT_ADDRESS_TYPE=adt AFP_ACTIVITY_FIRM_PARTIC=afp AGX_APPLICATION_GROUP_ITEM=agx DEPARTMENT=dept
and a column list will popup for the DEPARTMENT Oracle table. Also, if you set up these table aliases in ALIASES.TXT, then they will be presented on the SQL Modeler dialog when you select that table to build your query. To complete the SELECT SQL statement above, use Auto Replace Substitutions named similarly to the table aliases. These are accessible through the Edit > Editor Options > Auto Replace tab. However, it would take you a long time to add a reasonably sized schema, so it is recommended that you edit \TEMPS\PLSQLSUB.TXT. It should look like this:
68
aax_ = AAX_ACCESSGROUP_APPLICATION aax aca_ = ACA_ACTIVITY_ACTION aca acc_ = ACC_ACTIVITY_CATEGORY acc acd_ = ACD_ACTION_DESCRIPTION acd acp_ = ACP_ACTIVITY_CONTACT_PARTIC acp act_ = ACT_ANALYSIS_CATEGORY_TYPE act add_ = ADD_ADDENDUM add adt_ = ADT_ADDRESS_TYPE adt afp_ = AFP_ACTIVITY_FIRM_PARTIC afp agx_ = AGX_APPLICATION_GROUP_ITEM agx dep_ = DEPARTMENT dept
i.e., string = string to replace it with You might want to use the underline _ because it is not as likely that a command will end with the underline _ symbol. Having the alias afterwards keeps it tidy. So, if you type:
select dept.
the popup should appear. Select your column name, then continue.
select dept.NAME from dep_
If you edit ALIASES.TXT or PLSQLSUB.TXT, be sure to close and reopen TOAD to re-read the list.
An alternative to using AutoReplace for tablenames is tablename completion. For example, if you type dep and press <CTRL>. (period), a list of all tables beginning with dep will popup.
Chapter 6
SQL Editor
69
User configurable Syntax Color Highlighting The editors in the SQL Edit and Procedure Edit windows support flexible syntax highlighting. The highlighting is configurable in the Editor Options window and the list of reserved words used in each window is also customizable by editing the parser script file. If during a TOAD session you have used any window or function that retrieves the tablenames for the active Oracle session, tablenames will be colorized as well. In order for the editor to support syntax highlighting, the following files distributed with TOAD must be located in the TOAD\TEMPS directory: PLSQLSCR.TXT, for syntax parser scripts PLSQL.DCI, for code templates
70
Here, the default color of green for comment is being changed to light blue and italics has been unchecked.
Chapter 6
71
The primary configuration for the editor comes from an editor parser script text file that is loaded at runtime. This file is editable but be VERY careful if you decide to edit this file because NO technical support for altered scripts will be provided. The particular editor parser script is determined from the language of the object in the editor buffer. In the SQL Edit window editor, this language is always PLSQL. In the offline text editor, you can also have languages HTML, INI, JAVA, and TEXT. The language is determined from the file extension, e.g., HTML, and is configured in the TOAD Options > Files > Language / File Associations grid.
The list of languages and editor parser scripts is: Language HTML INI JAVA PL/SQL TEXT Editor Parser Script File HTMLSCR.TXT INISCR.TXT JAVASCR.TXT PLSQLSCR.TXT TEXTSCR.TXT
All editor parser script files are stored in the TOAD\TEMPS folder.
Long and Short PL/SQL Editor Parser Scripts There are two flavors of the PL/SQL editor parser script installed for your selection: SHORTSCR.TXT and LONGSCR.TXT. SHORTSCR.TXT is the same as PLSQLSCR.TXT. LONGSCR.TXT contains more items to syntax highlight and might perform slower, depending on your editor contents. The additional 200 items in LONGSCR.TXT are commonly used package functions and procedures in the SYS schema, such as DBMS_OUTPUT, DBMS_PIPE, DBMS_JOB, DBMS_SQL, DBMS_STANDARD, and DBMS_UTILITY. Each additional item to syntax highlight takes a little more execution time. If you want to utilize the LONGSCR.TXT parser script file, copy LONGSCR.TXT over PLSQLSCR.TXT. If you want to restore the shorter format for the editor parser script file, copy SHORTSCR.TXT over PLSQLSCR.TXT.
72 If you want to add or remove Oracle SQL Reserved words, PL/SQL Reserved words, or Oracle Keywords from the lists that are syntax highlighted, then edit the PLSQLSCR.TXT file. If you want to add or remove words from the syntax highlighting of the other languages, edit the corresponding editor parser script for that language.
Bookmarks Bookmarks help you manage files. They are especially useful when you are trying to manage large files. Mark a position within the SQL Editor so that you can easily jump back to that line. You can set up to 10 separate bookmarks within one editor. Bookmarks can be accessed from the Right-Click Menu.
To set a bookmark
Press <CTRL><SHIFT># where # is a number between 0 and 9. A small green box containing the bookmark number will appear in the editor gutter.
User defined keystrokes for common editing commands Click Edit > Editor Options > Key Assignments to access the Key Assignments window. Select the command from the left panel and its associated Key Assignment displays in the right panel. The Add or Edit buttons display easy-to-follow steps so that you can add new key assignments or edit existing ones. The Delete button deletes the highlighted key assignment. See the Key Assignments topic, page 95 , for more information.
Chapter 6
73
A substitution is a text phrase that corresponds to replacement text. For example: if you specify a substitution pair of ACT = ACTIVITY_CENTERS, when you type ACT and press <SPACE> (or other configurable word delimiters), ACT is automatically replaced by ACTIVITY_CENTERS. If you specify a substitution pair of NDF = NO_DATA_FOUND and you type NDF and press a delimiter, NDF is automatically replaced by NO_DATA_FOUND. To access Auto Replace go to the Edit > Editor Options > Auto Replace tab. TOAD already has a few Auto Replace Substitutions specified: teh = the, ndf = NO_DATA_FOUND, (c) = . The TOAD parser scripts come with a handful of Substitution pairs but you may edit and add to the list on the Editor Options window. Once saved from this window, the substitution pairs will be saved to an ASCII file named [Language]SUB.TXT in the TEMPS directory. The Auto Replace substitutions for each language type are stored in separate files in the TOAD\TEMPS folder.
Thereafter, you can continue to alter the substitutions in the Editor Options window or directly in the [Language]SUB.TXT file.
74 Code Completion Templates Code templates expand upon the Auto Replace Substitution concept but a manual keystroke (<CTRL><SPACE>) is required to perform the substitution. Code templates are more than a single phrase and can contain line feeds. If a vertical pipe character is in the code template, the cursor will be placed at that point in the template. Code templates are loaded from the text file [Language].DCI from the TOAD\TEMPS folder, where [Language] can be HTML, INI, JAVA, PLSQL, or TEXT. Example: one of the code templates defined in PLSQL.DCI is
[crbl | entire cursor block] DECLARE CURSOR c1 IS SELECT | FROM BEGIN OPEN c1; LOOP FETCH c1 INTO c1rec; EXIT WHEN c1%NOTFOUND; END LOOP; CLOSE c1; END; WHERE; c1rec IS c1%ROWTYPE;
Where: "crbl" is the macro for the template (the text YOU type) "entire cursor block" is the description of the template everything following until the next template is the body of the template
NOTE: Do not leave spaces between the end of the template description and the final right bracket! NT4.0 API calls to manage profile strings have a bug which will cause reading of the templates file to fail.
If you type "crbl" and press <CTRL><SPACE>, TOAD will load the body of the template and place the cursor at the position of the vertical pipe char. If the word or phrase under the cursor does not match an existing macro verbatim, a dropdown list of all macros is displayed.
Chapter 6
SQL Editor \TEMPS\PLSQL.DCI contains sample templates which you can alter to suit your needs. You can edit the code completion templates directly in the Editor Options dialog, Code Templates tab, or via text editor on the *.DCI files. Undo/Redo These basic editing commands are accessed from the Edit menu. Command Undo Redo Keyboard Shortcut <CTRL>Z <SHIFT><CTRL>Z
75
Comment Code Block This function comments the selected block of text by adding "--" before each line. This is available on the Right-Click Menus of the editors and is also on the Main Edit menu.
Uncomment Code Block This function uncomments the selected block of text by removing "--" from the beginning of each line. This is available on the Right-Click Menus of the editors and is also on the Main Edit menu.
Locate Closing Parenthesis (Find Closing Block) Finds the closing parenthesis, "END" for matching "BEGIN", or "END IF" for matching "IF. If you select/highlight a left parenthesis, "BEGIN", or "IF", this function will show the matching right parenthesis, "END" or "END IF." Find Closing Block can only be accessed on the Right-Click Menus of the SQL Editor and Procedure Editor.
76 Find, Find Next, Find Previous, and Replace You access the Find and Replace editing options from the Edit menu. Function Find Find Next Find Previous Replace Keyboard Shortcut <CTRL>F F3 <SHIFT>F3 <CTRL>R
Show All following a search To get to this function click Edit > Show All. Only to be used after a FIND. After you use FIND to search through your text, for a word or phrase, you can click Show All from the Edit menu and Show All will display wavy red lines under every occurrence of the search phrase. The lines will be removed following any change to the text in the editor.
Configurable Print Options To get to the Print Options click Edit > Editor Options > Options tab.
Use Syntax Highlighting when Printing Source Code This option is checked by default, which means the report will print using the same colors that are displayed in the window. So, color printing is the default for printing SQL Edit text or Stored Procedure Edit code. If you uncheck the View > Options > Printing tab option Use Syntax Highlighting When Printing Source Code then the SQL text or Stored Procedure Edit code will be printed in standard black and white. If you get garbage characters on your color printout, turn off Syntax Highlighting When Printing Source Code and then try to print again.
Chapter 6
SQL Editor The Reports Font The Reports Font dialog is in View > Options > Printing.
77
You can change the reports font. The default font is courier, regular, 9 point. You can click the drill down button to the right of the Reports Font textbox to display the fonts selection menu. After youve selected your new fonts click OK. If you click Cancel, your reports font will not change.
The drill down button lets you change the reports font.
78
Editor Options
Editor Options can be selected, deselected, and modified on the popup dialog window that is available either from the Right-Click Menu of the editor (on the SQL Edit or Procedure Edit windows) or from the Edit menu > Editor Options in a SQL Editor or Procedure Editor window. The Editor Options lists categories in the left panel: General Options, Highlighting, Key Assignments, Auto Replace, and Code Templates. Click any of these items to display its corresponding options in the right panel. The editor options are stored in the [Language]KEYS.BIN and [Language]OPTS.TXT files in the TOAD\TEMPS folder, where [Language] is either HTML, INI, JAVA, PLSQL, or TEXT. When a change is made to the editor options, the appropriate OPTS.TXT and KEYS.BIN files are written out. Do not attempt to edit these files with a text editor. Use the Editor Options dialog.
Editor Options Files HTMLKEYS.BIN INIKEYS.BIN JAVAKEYS.BIN PLSQLKEYS.BIN TEXTKEYS.BIN HTMLOPTS.TXT INIOPTS.TXT JAVAOPTS.TXT PLSQLOPTS.TXT TEXTOPTS.TXT
NOTE: The Key Assignments, Auto Replace, and Code Templates items have Load from File and Save to File buttons. Each of these buttons lets you set up two or more collections of keystrokes, auto replaces, and code templates. This is useful on multiuser machines. For example, one user might prefer to use one set of assigned keys, auto replaces, and code templates, and another user might have a different set for a preference.
Chapter 6
SQL Editor
79
General Options
Click the General Options item to display the collapsed categories in the right panel. General Options lists four categories: Printing Options Display Options Control Options General Options
80 Click the + next to each option to expand its corresponding checklist. If the checklist is expanded, click the to close the corresponding checklist.
Here, the Printing Options list is expanded. A click on the minus sign will collapse the list. A click on the pluses in the other options will expand their corresponding lists.
Chapter 6
SQL Editor
81
Printing Options
These options are used when you print the editor comments to paper.
Wrap lines when printing Default Checked When checked this option automatically wraps lines when printing.
Print line numbers Default Checked When checked, this option prints the line numbers.
Print filename in header Default Checked When checked, this option prints the filename in the header.
Print date in header Default Checked When checked, this option prints the date in the header.
Print page number Default Checked When checked, this option prints the page numbers on your printout.
82
Display Options
The display options allow you to control what is displayed in the editor.
Display line numbers in gutter Default Unchecked When checked, this option will display line numbers in the gutter, which is a vertical region to the left of the editor used to display bookmarks, breakpoints, line numbers, and allow for multiple line selection with the mouse. If unchecked, line numbers will not display. You may want to increase the width of the gutter, in the Gutter Width textbox, to display large line numbers.
Show right margin Default Unchecked When checked, this option displays a light gray vertical line indicating the right margin. When unchecked, no line to indicate the right margin will appear. In the SQL Editor or Procedure Editor, you can also drag and drop the vertical right margin line left or right to change it. NOTE: No word-wrapping occurs at the right margin line. Word-wrapping is discussed later in this chapter in the Show Word-Wrap Column section.
Show gutter Default Checked When checked, this option displays the gutter. When unchecked a gutter does not display. So, if you have chosen to display line numbers but you have the Show gutter option unchecked, your line numbers, which would display in the gutter, will not display.
Gutter
Chapter 6
83
When checked, this displays the word-wrap column, which is basically a dashed vertical gray line on the right side. You have to enter a value in the word-wrap column value box in order for this to display. The default is 0, which means no word-wrap column will display. So, you need to check the Show word-wrap column checkbox AND enter a value in the word-wrap column box. For example, if you enter 20, a dashed vertical line displays in column 20, and any lines longer than 20 characters will wrap. The vertical word-wrap line can be dragged and dropped to the left or the right, so you dont have to drill down to the editor options dialog when you want to change the column settings. Word wrapping will not begin until you also check the General Options > Word Wrap Lines checkbox.
Block cursor on overwrite Default Checked If this option is checked when you press the insert key to change to overwrite mode, the cursor is displayed as a block because its in overwrite mode, providing a visual reminder that its in overwrite mode. If the option is unchecked the cursor remains unchanged when you switch to overwrite mode, as opposed to changing to a block.
Show wrapped lines with the |> arrow glyph Default Checked If checked, this option displays a glyph |> in the gutter for wrapped lines.
84 Show Control Characters Default Unchecked If checked, the control characters (such as paragraph marks, end-of-line characters, spaces, and TABs) will display onscreen in your scripts.
Apply capitalization effects Default Unchecked When checked, this option will apply the capitalization effects that you select from the Highlighting Options section.
Chapter 6
SQL Editor
85
Control Options
Allow TCustomSyntaxMemo to be an lDragSource Default Checked When checked, this option lets you select and drag text from one editor to another window application or another TOAD window.
Title as Load/Save Filename parameter Default Checked This causes the file title to be the name when saving and loading the file.
Track columns in vertical movement Default Checked If this is checked, the editor will attempt to restore the current column position as you key up or down through the lines of text. If the text is wide enough then the current column position is maintained, otherwise it places the cursor at the end of the line. If this is unchecked, as you key up or down through the lines of text, the cursor column position decrements as the lines of text get shorter.
Respond to dropped files Default Checked If checked, this lets files be dragged and dropped from Explorer to a TOAD editor.
Override word-wrap based on line start char Default Unchecked You can specify a character or characters on the Editors Options dialog ,WordWrap Override Chars textbox, that will override word wrapping for that line only. So, if you want to specify that > will override word wrapping for a line, enter it, set word-wrap to column 16, and youll get:
86
but when you begin the line with your specified character >
>This is over 16 chars and will not word wrap.
Chapter 6
SQL Editor
87
General Options
Auto indent Default Checked If you have an indention already set, when you type, it automatically indents the following lines.
Tab to next column Default Checked When checked, the <TAB> key moves the cursor to the next column.
Auto select word on double-click Default Checked When checked, if you double-click on a word in the editor it becomes selected.
Insert TABs into text for TAB chars Default Checked Tabs are inserted into the text when the <TAB> key is pressed. Otherwise, an appropriate number of spaces are inserted.
Insert mix of TAB/SPACE for optimal fill Default Checked If checked, the editor will fill the required gap with a minimum number of characters composed of TABs and spaces.
Type this:
This line of code starts in column 5 So does this line
Cursor beyond EOL Default Unchecked When checked, you can type text or move the cursor past the right edge of each line of text.
Word-wrap lines Default Unchecked When checked, text will automatically wrap at the Word-wrap Column margin. If this option is selected you cannot type beyond the right margin even if the cursor beyond EOL option is checked.
Chapter 6
SQL Editor
89
Highlighting
The highlighting options are designed to allow you to select colors, fonts, and even capitalization preferences for different items, names, etc. in the current schema. For example, Reserved word refers to Oracle reserved words. You can change the foreground or background colors for Reserved words, the font, the type size, and even the capitalization. This lets you customize the way your code will appear for whatever is easiest for you to read. A preview pane is provided in the lower part of the window that shows you how the selections you make affect the preview example.
Here, the underline option is checked for datatypes. In the preview screen, the datatype is underlined.
90 The following items can be syntax highlighted independently: Reserved Words SQL Functions Default Packages Exceptions Comments Identifiers Strings Numbers Symbols Datatypes Tablenames SYS Views SQL Reserved Words PL/SQL Reserved Words Default Exceptions User Procedure Names
For example, you could syntax highlight SYS view names like this:
You can syntax highlight tablenames in your schema applying different colors and capitalization effects like this:
And the result would be ALLOCATION in light green, in all uppercase letters.
Chapter 6
SQL Editor
91
Display Item This lists the display items from which you can choose to modify how they will appear. The last three display items, Selected Text, Left Margin, and Gutter, do not refer to actual code content. They have only certain options enabled.
Selected Text This is an item in the display items that refers to the colors that will display when you select text by either clicking and dragging the mouse over a section of text, or pressing <SHIFT> and one of the arrow keys to select a portion of text. You can change both the foreground and background colors that will display for the selected text. You can preview your new selected text colors before clicking OK, by selecting text in the preview window and seeing how the new colors affect the selected text. The other selection areas such as font are disabled when you click on the Selected Text item. Only the foreground and background color sections are enabled.
Left Margin This item only enables the background color choice. If the background color default box is already checked, the dropdown menu will be disabled. In such a case, you must uncheck the default box to enable the dropdown menu. The dropdown menu displays a color palette from which you can choose the color for the left margin vertical bar.
92 Gutter This item only enables the background color choice. If the Use Default box for the background color is already checked, the dropdown button is disabled. In such a case, you need to uncheck the Use Default box so that the dropdown button is enabled.
Default The default item lets you change the appearance of your default text if you want to use colors or fonts that are different from the defaults.
About the color palette The dropdown button for the background and foreground colors displays a small palette with 20 colors from which you can choose. If you click the Other button, a larger palette displays that has 48 basic colors. You can also customize your own color choices by either clicking the crossbars in the large multicolored box that is in the right half of the window, and drag the crossbars until your desired color displays in the Color/Solid box OR manually entering the values for Hue, Saturation, Luminance, Red, Green, and Blue. Click Add to Custom Colors, and the new color appears in the customized colors palette. Click OK and that color is selected for whatever dropdown menu item you were on (Background color or Foreground color).
Item Foreground This option includes a dropdown list from which you can choose a color from the color palette. You can also click the Use Default box to the right of the dropdown button, to select the default foreground color. If the Use Default box is already checked the dropdown button is disabled. In such a case, you must uncheck the Use Default box so you can enable the dropdown button.
Chapter 6
93
Like item foreground, this option includes a dropdown list from which you can choose a color from the color palette. You can also click the Use Default box to the right of the dropdown button to select the default foreground color. If the use default box is already checked the dropdown button is disabled. In such a case, you must uncheck the use default box so you can enable the dropdown button. If you are going to change the item background make sure that it will have enough contrast from the items foreground color to be easily readable.
Editor Font This is a dropdown list of fonts that you can select. The default is Courier New. NOTE: The editor supports only one font name for all display items.
Size This is a dropdown list of point sizes that you can select. The default size is 10 point. NOTE: Some fonts wont have all the point sizes that are in the list. You need to look at the preview window and see if your selection actually changes the size of the display font.
B,I,U,S These are checkboxes for bold, italics, underlined, or strikethrough text effects. Multiple checkboxes, or effects, can be selected for each item.
Character Set This is a dropdown list of character sets from which you can choose. The default is ANSI.
Capitalization Effect This dropdown list lets you choose how your item will be capitalized. However, the Apply Capitalization Effects checkbox that is in General Options > Display Options must be checked in order for your capitalization effects to display.
94 Your choices are: Unchanged No special capitalization will be applied. Lowercase The item will appear in all lowercase letters. Uppercase The item will appear in all uppercase letters. Initial Caps The item will appear with only the first letter of each word in caps.
For object names that contain the underscore character, the first letter after the underscore will be capitalized, too, e.g., Table_Name. Capitalization effects are only applied to your text after you change lines up or down in the editor. E.g., type:
select * from table_name
and you will not get capitalization effects until you press <ENTER> or go up or down one or more lines, then it is translated to:
SELECT * From Table_Name
Chapter 6
SQL Editor
95
Key Assignments
Clicking on the Key Assignments item displays the corresponding Key Assignments options. The Key command categories listed are: Bookmarks Caret movement Clipboard operations Deletion operations Miscellaneous
96 Click the expand button to expand that categorys list Select an item from the list and that items keyboard shortcut will display in the Activation Key Sequence window.
Add new sequence This brings up a series of step boxes that let you add a new sequence by simply typing the sequence in the step boxes.
Edit sequence This lets you edit the existing sequence through a series of step boxes.
Delete sequence This deletes whatever sequence is currently highlighted in the Activation key sequences window. If a list of sequences is in the box, you can click a sequence from the list to highlight it and then click the delete sequence button to delete that highlighted sequence.
Chapter 6
SQL Editor
97
Auto Replace
Click on Auto Replace to display its corresponding options menu. TOAD already has 5 Auto Replace items. If type this (c) (r) (tm) ndf teh Replaces with this
TM
No_Data_Found the
98 Add definition This box is enabled after you click in the Current selection window and type a character. The first blank window is where you type the text that you want automatically replaced. The window to the right is where you type the replacement text. Then click the Add definition button to add this to the Auto Replace list. Remember to Click OK before exiting the window. If you exit the window without clicking OK the new definition will not be added.
Replace definition This button is enabled after you make a selection from the already defined Auto Replace list and click in the With window (the right window under the current selection window) and type a character in the With window. After you type the new entry that you want to replace the current selection with, click OK and the list will be updated.
Delete definition This button is enabled after you select a definition from the existing Auto Replace list. Then click the Delete definition button to delete the definition from the list. Click OK and the definition will be deleted.
Auto Replace activation keys ; , : = [ ] \n \t \s These keys will separate one word from another and trigger the editor to check for and replace one word for another. \n is a carriage return, \t is a <TAB> character, and \s is a space. For example, if you type this;that then this will be autoreplaced when the ; key is pressed. The autoreplace items are saved and recalled from the TOAD\TEMPS\[Language]SUB.TXT file, where [Language] could be HTML, INI, JAVA, PL/SQL, or TEXT. You can directly edit the SUB.TXT file to add, delete, or change the autoreplace substitutions without having to go through the Editor Options dialog.
Chapter 6
SQL Editor
99
Code Templates
Click the Code Templates item to display its associated options.
Shortcut/Description window This window lists the code templates that are already defined. Click on an item from this window and its template will display in the display window that is under the Shortcut/Description window.
100 Add definition Click the Add definition button and a new line with the word new appears in the shortcut templates window. You can then type in the shortcut name. Then tab and type in the description.
Delete definition The Delete definition button is enabled when you click on a line from the Shortcuts/Description window. To delete a definition, select the Shortcut/Description you want to delete, click the Delete definition button, and then click OK.
Code template items are saved and recalled from the TOAD\TEMPS\[Language].DCI file, where [Language] could be HTML, INI, JAVA, PLSQL, or TEXT. You can directly edit the .dci file to add, delete, or change the code templates without having to go through the Editor Options dialog.
Chapter 6
SQL Editor
101
Right-Click Menu
Click the right mouse button while you are in the SQL Editor to access the RightClick Menu. This provides a shortcut to the functions listed in the menu. You can also press F10 to display the Right-Click Menu.
The Right-Click Menu has a few features that are not anywhere else in TOAD. These functions are:
Search Knowledge Base If youve installed RevealNets Knowledge Base, you can easily access and search the Knowledge Base through the Right-Click Menu.
Format SQL This formats your SQL statements using RevealNets PL/Formatter product if installed or just a basic format if PL/Formatter is not installed.
Find Closing Block Finds the closing parenthesis, "END" for matching "BEGIN", or "END IF" for matching "IF."
Optimizer mode for Queries This changes the optimizer mode for the entire session. Options include Choose, Default, Rule, First Rows, and All Rows.
102
in the SQL Editor, you can see all rows and columns of the given table in the results grid.
Rearrange Columns You can drag and drop column names without having to re-execute your queries. TOAD retains the column layout (order and widths) from query to query as long as the column list in the query remains the same.
Editable Data Grid The data grid that displays the results of the SQL queries is fully editable providing that the query returns an updateable resultset. Query statements MUST return the ROWID to be updateable.
Chapter 6
103
would be updateable. To overcome this obstacle, you can substitute EDIT Items which TOAD will translate into the updateable version of the statement. For example:
edit employee
If the resultset is editable but remains read-only, make sure Read-Only on the Options window is not enabled. This is a common FAQ concerning TOAD. A red or green box displays in the status panel at the bottom of the SQL Edit window indicating if the recordset is editable (green) or not editable (red).
104
Memo Editor The Memo Editor is for LONG, CLOB, or VARCHAR data type columns. Blob Edit is for LONG RAW/BLOB data type columns. For columns that are long (200 characters or more), when you double-click, a text editor displays. This is not designed for numeric columns. Its designed for text. For date columns, a date picker is displayed where you can select a date from a calendar presentation.
Chapter 6
105
If you want to make changes to the data in the Memo Edit popup window, the resultset must be editable. Otherwise, the Memo Edit popup window is also read-only.
Print Grid This invokes a grid print setup window where you can custom set the width of the columns, add headers, and custom set other page print options. Use this dialog to select your grid print options, then print the grid contents to paper. You can total a number column. Click on a Column in the Report will print as shown window. Check the Total the Column checkbox, and your column will be totaled.
106 The tabs in the Grid-Print Setup window are for Headers/Footers, Columns, and Page Setup.
Headers/Footers You can select a top line and second line header and a one line footer. You can also check the Print page numbers box and the page numbers will be printed.
Page Setup A dropdown button lets you select the printer. Default orientation in the page setup is Landscape. Because the width of the screen is greater than the width of Portrait orientation, you should print using Landscape orientation.
TOAD does not have a print preview, so it is important to remember that the width of the screen is wider than the width of a portrait layout page. TOADs default print setting is Landscape Orientation.
Columns A checkbox lets you print column titles in bold. A dropdown list lets you choose left, centered, or right text alignment. The Remove Column button lets you remove columns. A dropdown list lets you choose left, centered, or right date alignment. If you want to total a column, select the column in the Report will print as shown display and then check the Total this column checkbox.
Chapter 6
SQL Editor
107 Because the screen fonts are slightly different from the printer fonts, it is best to leave space between columns so that the printed version has sufficient space between columns. After you select your options, click the Print button.
Save As The Save As dialog from the Right-Click Results Grid menu displays the Save Grid Contents window which contains format and file location options.
Delimiters Some programs require commas, which is a popular standard, to distinguish the data from one column to another column. The ASCII standard for dividing data is the <TAB> character. The Save As dialog from the Right-Click Results Grid Menu lets you choose a comma delimiter, a tab delimiter, or you can enter a different delimiter character.
108 Format Default Tab Delimited The Format area contains three radio buttons: Comma Delimited Divides data between columns with commas Tab Delimited Divides data between columns with tabs Other You can type the character you want to use as a delimiter
Double Quote Text Characters Default Unchecked If this option is checked, text will be enclosed in double quotes. Example:
7369 "SMITH" "CLERK" 7902 12/17/1999
Include Column Header Default Unchecked If this option is checked, the column headers will be included in the text output. Example:
EMPNO 7369 ENAME SMITH JOB CLERK MGR HIREDATE 7902 12/17/1980 SAL 800
Include NULL Text Default Unchecked If this option is checked, the word NULL will be included for empty cells (cells that contain no information). Example:
7698 BLAKE MANAGER 7839 05/01/1988 NULL 30
Chapter 6
SQL Editor
109
Save as HTML Table If this choice is selected, TOAD generates <TR></TR> and <TD></TD> HTML tags (tags for table rows and columns) and puts the values between the tags. Save to (Save Grid Contents window) Default Clipboard If you choose File, you can type in the file location or you can click the drill down button to find your target directory.
TOAD displays a confirmation message after it completes the Save As process. Save to Clipboard saves the text to clipboard ready for you to Paste to another application such as Word or Excel. After you click OK, TOAD will display a confirmation message that states the number of rows that were exported.
2 3 4 5
110
This does NOT requery the data from the database. It just temporarily hides the columns.
Export to Flat File When you Export to Flat File you export data to an ASCII file without column delimiters. The spec file indicates start and end points for columns, which you can edit. On the Options tab, select the table to export. You must set up the Specifications File, which will define the table name, table owner, how many lines in the output file will be covered by a single record of data, the columns of data, what line they will appear on, the starting column, and the length of each column of data.
Spec File tab This is where you set up where your columns will begin and end. See the Generate Columns button section on the next page to learn how to create a starting point for your specifications file.
Chapter 6
SQL Editor Spec Filename You can type in your filename or use the drill down to choose a target path.
111
Save Spec File This saves your specifications file and all your edits.
Generate Columns This creates columns for your specifications file based on the DDL for the table, not the width of the actual table data. Example of a specification file:
TABLENAME=EMPLOYEE TABLEOWNER=DEMO LINESPERRECORD=1 COL1=EMPLOYEE_ID,1,1,5 COL2=LAST_NAME,1,6,15 COL3=FIRST_NAME,1,21,15 COL4=MIDDLE_INITIAL,1,36,1 COL5=JOB_ID,1,37,4 COL6=MANAGER_ID,1,41,5 COL7=HIRE_DATE,1,46,22 COL8=SALARY,1,68,10 COL9=COMMISSION,1,78,10 COL10=DEPARTMENT_ID,1,88,3
The basic format for the column definition lines is: COLx=COL_NAME,Output_row_num,Start Col,Num Columns A sample flat file as exported will look like this:
7369 7499 7505 7506 SMITH ALLEN DOYLE DENNIS JOHN KEVIN JEAN LYNN Q J K S 667 670 671 671 7902 7698 7839 7839 12/17/1984 2/20/1985 4/4/1985 5/15/1985 800 1600 2850 2750 300 20 30 13 23
112 More about Flat File Flat File Export from Table window You can also create a flat file from a table using the Database > Export > Export Table as Flat File menu item. On the Options tab, you would select the schema and the table to export.
Find Data The Find Data window lets you search through selected columns for selected values or characters. You can specify whether you want the search case sensitive, and whether or not you want to have partial matches.
To find data
1 2 3 4 5 6 From the Right-Click Menu, or from the main Grid menu, select Find Data. Select the column you want to search. Enter the keyword or value to find. Click the ADD button. Select case sensitive and partial match options. Click OK.
TOAD will search all records for the value, and position the recordset to the first matching value. If the records are cached then the search is fast. If TOAD needs to query ahead in the recordset, then youll have to wait for additional rows to be fetched from the database. This dialog lets you enter a multiple column search criteria. Example: ENAME = SMITH AND JOB = CLERK
Chapter 6
SQL Editor Select Columns You can check or uncheck the columns you want to see. You can also Select All or Unselect All
113
<ALT><RIGHT ARROW> will move the current column to the end, leaving the columns at left unchanged. <ALT><LEFT ARROW> will move the column at the far right to the current column position.
Clicking on column 2 and pressing <ALT><RIGHT ARROW> will result in this column layout: 1 3 4 5 2
And pressing <ALT><LEFT ARROW> will take the column from the end and insert it into the current column position, yielding: 1 2 3 4 5
Record Count This displays a count of the number of records in the recordset.
Chapter 6
115
This displays a dropdown window where you can select 1, 2, 3, or the number you type in Other. You can even select none. After selection, starting at the left, the number of columns youve selected are fixed and not editable. Horizontal scrolling in the grid will keep the fixed columns in view.
Row Height This displays a dropdown window where you can select single, double, or triple space row height. The default is single. The selection applies to all the rows in the grid.
Allow Multi-Select When this is checked you can select more than one row by pressing <CTRL> and the rows you want to select. If you accidentally select a row you want to deselect, press <CTRL> and click the row and it will be deselected. When Multi-Select is not checked you can only select one row at a time.
Font This displays the font window where you can change the font for your Results Grid data. The font you choose is applied to all the data in the grid.
Size Columns to Data When checked, this matches the column margins with the data.
116 Row Numbers When checked, the Row Numbers display in the record selector area. The total number of rows returned in the resultset will display in the status bar at the bottom of the window only after you have scrolled to the end of the resultset. This is because the resultset is fetched only as required, to improve overall performance. When the last row is fetched, TOAD will know and display the total count. To return the Oracle pseudo-column ROWNUM in the SQL Results Grid, add "ROWNUM" to the query:
select rownum, emp.* from employee emp
Remember that rownum is an Oracle pseudo-column, not stored with the table definition or data, but derived when queried. To return the ROWID in the query, alias the column as another name:
select rowid foo, emp.* from employee emp
Row Highlight When this is checked, the entire row is highlighted when any cell in the row is clicked. When this is unchecked, the individual cell highlights when selected.
Chapter 6
SQL Editor
117
Default to Read-Only Queries Default Unchecked This option controls the ability to fetch updatable result sets in the SQL Edit window. If checked, you cannot edit data in a SQL Edit window. You can edit a resultset by including the ROWID in the query, or using edit table.
Show row numbers in all grids (applies to data grids on Browser also) Default Unchecked If checked, TOAD will display the row numbers in the results grid, records selectors area.
Popup memo editor on double-click Default Unchecked If checked, when you double-click on any text column, a popup window will display with the contents. This option is useful for LONG columns.
Allow columns to be less than the header width Default Unchecked If checked, you can resize the column widths to be smaller than the header text. If unchecked, the minimum you can resize the column width to is the width of the column header text.
118 Size grid columns to the width of the data Default Unchecked If checked, TOAD will size the column widths to the width of the data, or to the width of the column header, whichever is wider. If unchecked, TOAD will size the column widths to a best guess.
Display (null) for Null columns Default Unchecked If checked, TOAD displays {null} in the SQL Results Grid and Schema Browser data grids for rows/cols that contain NULL.
Font for data grids textbox with drilldown Default Courier, Bold, 11 This is the font that the SQL Results Grid will use to display the data. The drilldown button accesses the standard font window. This option also affects the other grids in TOAD, like the Browser, Data tab.
Date format dropdown Default Your Windows Control Panel, Regional Settings, Short Date Style Format Normally, the data in TOAD for date columns will display in the format selected in the Window Control Panel. Selecting a different format will override the Windows Control Panel setting.
Time format dropdown list Default h:mm:ss AMPM This lets you select a different time format, if desired.
Clone SQL cursor when exporting grid contents (faster exports and uses less memory) Default Unchecked
Chapter 6
SQL Editor If you clone cursor (check this option), TOAD will reissue the statement from the SQL Editor which means that the statement processing time is doubled. But the cursor is unidirectional, which saves a lot of memory during the export.
119
If you do not clone the cursor (unchecked), TOAD will use the existing cursor from the SQL Editor Grid, which is a lot faster, but can potentially be a memory hog.
Do not require NOT NULL columns in data grid entry (allow Oracle to enforce constraints) Default Checked If this option is checked, TOAD will not check for blank values during grid edits, and will instead rely on Oracle for the constraint checking. If unchecked, TOAD will stop editing if blank is entered in a NOT NULL required entry column.
Trim string data before posting to Oracle Default Unchecked If checked, this will trim off trailing spaces from data before posting it to the database. This lets you post a single column with just spaces.
Confirm deletions Default Unchecked If checked, this will confirm each record deletion before deleting the record. This also affects the data grids on the Schema Browser Data tabs.
Sliding window for entering two digit years Default - 30 This is the number of years that will be subtracted from the current date (system date) to determine whether a two-digit year will be interpreted as a current century year or a previous century year. Click the Up and Down arrow to select the range. The range of choice is 0 to 49. Anything outside of the sliding window will be treated as a current century year, and any number that falls inside the sliding window will be treated as a previous century year.
120 For example, if your current system date is set for June 1, 2000 and you specify a 30 year window (which is the TOAD default) and enter 1/1/87, the date produced will be Jan. 1, 1987; if you enter 1/1/57 that is outside of the 30 year window so the date produced will be Jan. 1, 2057.
Chapter 6
SQL Editor
121
You edit these columns by double-clicking on the column and editing from the popup windows that display. For LONG columns, the Memo Editor window is displayed. For LONG RAW columns the Blob Edit window is displayed. If the popup window does not display, go to View > Options, on the Data Grids tab, and make sure the Popup memo editor on double-click option is checked. It must be checked for the above functionality to work.
122
The popup editor for LONG columns displays the column text. You can edit in the editor or load a file into the editor. The popup editor for LONG RAWS provides Load From File or Save to File functionality.
Double-clicking on the LONG COLUMN $define popups a memo editor that contains the column text.
Load From File lets you select a file from your hard drive and place it into the LONG RAW column in the Oracle database. Save To File lets you take the data from the LONG RAW column from the database and save it to a file on your hard drive. Note that the recordset has to be editable for the popup editors to edit the data. You can still use the popup editors to have a read-only view of the data.
Chapter 6
SQL Editor
123
LONG RAW Columns 1 2 3 4 5 Create a table: "create table long_raw_test (id number, long_raw_col long raw)" Edit the table: "edit long_raw_test" Insert a row: enter 1 for ID then double-click on the long raw col cell Pick a file to import. Click the right arrow Next Record button. "select * from long_raw_test" should view only id, long_raw_col should display (BLOB).
124
Time Values
When displaying times with dates, TOAD suppresses the time values if they are 12:00:00 AM (midnight). The time portion of the date fraction is zero, so TOAD adds no value to the display of the date. Oracle stores dates as a big fraction number offset from January 1, 4712 B.C. It is then converted to a complete date, and time. Whether or not you use time, it's in there. It will also work accurately well past Y2K. Performing a query:
SELECT SYSDATE FROM DUAL
will display the time, and similarly, queries of DATE datatype columns will display the time if it is not midnight. The time dropdown in the TOAD Options > Data Grids dialog is for display purposes and does not affect the storage of time values.
Chapter 6
SQL Editor
125
SQL Templates
SQL Templates (Help) is a popup reference for Oracle SQL functions and expressions. To access the SQL Help Templates, go to the common edit toolbar in the SQL Edit window and select Show SQL Help. You can also access SQL Templates from the Procedure Editor window. The items associated text files are located in the TOAD directory in the TEMPS folder. You can modify the files. FILE NAME STRFUNCS.TXT NUMFUNCS.TXT GRPFUNCS.TXT DATFUNCS.TXT DATEFMTS.TXT CNVFUNCS.TXT MSCFUNCS.TXT NMBRFMTS.TXT PSEUDO.TXT OPTHINTS.TXT PREDFXCP.TXT USRFUNCS.TXT ASSOCIATED TEMPLATE Single Row Character Functions Single Row Number Functions Group Functions Date Functions Date Format Options Data Conversion Functions Other Misc. Functions Number Format Options Oracle Pseudo Columns SQL Optimizer Hints Defined Exceptions User Provided Function List
These templates are user configurable by editing the text file. This is especially useful for configuring PREDFXCP.TXT and USRFUNCS.TXT.
In the SQL Templates window, an explanation of the item or function displays in the lower panel. The items can be dragged and dropped into your SQL script.
126
Chapter 6
SQL Editor
127
When you turn on an embedded DBMS_OUTPUT window, the SQL Editor is on top, in the lower left is the DBMS_OUTPUT window, and on the lower right is the SQL Results Grid. You can have the DBMS_OUTPUT window as either embedded in the SQL Edit window or as a separate MDI child window. With the MDI child, both the SQL Edit window and the DBMS_OUTPUT window are the same size, and can then be tiled, cascaded, etc. The DBMS_OUTPUT is discussed in detail in the PL/SQL Debugger chapter.
128
Make Code Statement Adds the code development tool syntax to the SQL statement in the SQL Editor, and makes it ready to paste into the development tool code. When making code statements, rather then changing the code in the SQL Edit window as the Strip Code Statement function does, the Make Code Statement function takes the currently highlighted SQL statement, translates it into the code development tool syntax, and copies it to the clipboard. You can now switch to the code development tool, and paste in the results. A message displays in the status panel such as VB statement copied to the clipboard. If you have multiple SQL statements in the SQL Editor, highlight the statement you want to make before executing the Make Code Statement function.
For example, taking this code and running Make Code Statement for VB code, changes the SQL statement from this:
select count(*) as cnt from all_tables where owner = 'DEMO' and table_name = 'EMPLOYEE'
to this:
Sql = " select count(*) as cnt" Sql = Sql & Sql = Sql & Sql = Sql & " from all_tables" " where owner = 'DEMO'" " and table_name = 'EMPLOYEE'"
Chapter 6
SQL Editor Strip Code Statement Strips off the code development tool syntax from the SQL statement, ready to execute in TOAD.
129
For example, taking this VB code from the VB development tool, copying it, pasting it into TOAD, and running Strip Code Statement, changes the SQL statement from this:
Sql = " select count(*) as cnt" Sql = Sql & Sql = Sql & Sql = Sql & " from all_tables" " where owner = 'DEMO'" " and table_name = 'EMPLOYEE'"
to this:
select count(*) as cnt from all_tables where owner = 'DEMO' and table_name = 'EMPLOYEE'
If you have multiple SQL statements in the SQL Editor, highlight the statement you want to strip before executing the Strip Code Statement function.
Selecting the Code Development Tool You select the code development tool in the View > Options > SQL Editor tab > Make Code Format dropdown list.
130 The Make Code Format dropdown list lets you select a language syntax for TOAD to convert a SQL statement into (Make Code Statement function) and out of (Strip Code Statement function). Currently, Delphi, VB, C++, Java, and Perl are supported. The default selection is VB.
External Editor You can use an external editor to edit the SQL Editor contents. To set up, go to the TOAD Options > Editors > External Editor Command Line. Enter the drive letter, path, and executable name of the external editor you want, e.g., c:\winnt\notepad.exe. While in the SQL Editor or Procedure Editor, press <F12> to invoke the external editor, which will start and load up the current TOAD Editor contents. Use the external editor, save the contents back to the SQLPLS.SQL file in the TOAD folder, quit the external editor, click back on TOAD, which will ask you if you want to reload the contents of the SQLPLS.SQL file. Select Yes.
Chapter 6
SQL Editor
131
Show Views on Table Selector Default Unchecked If checked, will show views, along with tables, on the Table Select window. Tables are listed on one tab, and Views are on a separate tab.
Show Synonyms on Table Selector Default Unchecked If checked, will show synonyms, along with tables, and optionally views, on the Table Select window. Tables, Views, and Synonyms are listed on separate tabs.
Use syntax highlighting on tablenames Default Checked If checked, will show tablenames in the SQL Edit window and other editors, using the syntax highlighting feature. If unchecked, tablenames will appear in black text.
Treat underbar character as part of object names Default Unchecked If checked, will select the entire word when double-clicked, including characters to the left and right of the underscore character, "_". If unchecked, will select only the portion of the double-clicked word up to the underscore character.
Display columns dropdown list after typing object name followed by a period Default Checked If checked, will display the columns dropdown list. If unchecked, will not display the columns dropdown list.
132
Return column names in lower case from Selection Windows (and drag-drop) Default Unchecked If checked, will return selected column names into the editors in lower case. Otherwise they are returned in upper case.
Allow RTF when copying to/from clipboard Default - Checked If checked, TOAD will copy color markups, for pasting into email or other RTF enabled applications. If unchecked, the text will be copied to the clipboard as standard black text.
Show Editor toolbars on SQL Editor and Procedure Editor Default - Checked This option displays the editor toolbars on the SQL Editor and Procedure Editor windows when checked. If unchecked, the editor toolbars will not display.
Use popup windows when executing DESC statements Default Checked If checked, TOAD will present you with a popup window of complete object detail when executing a "DESC object_name" statement. If you prefer the results to be presented in the SQL Results grid, then uncheck this option. Regardless of this option setting, selecting an object and pressing F4 will use the popup windows.
Use StayOnTop Popups Default Checked If checked, the F4 popup Object Describe windows will use the windows Stay on Top feature.
Chapter 6
SQL Editor Load the following from the TOAD.EXE\TEMPS location Templates for new procedures in the Procedure Edit Default Checked
133
If checked, will load the NEWFUNC.SQL, NEWPACK.SQL, NEWPROC.SQL, and NEWTRIG.SQL new PL/SQL template files from the network or local workstation where TOAD.EXE and TOAD.HLP are running from.
Code Templates (Control-Space drop-downs) for editor windows Default Checked If checked, will load TOAD.DCI code completion templates from the network or local workstation where TOAD.EXE and TOAD.HLP are read.
Source for the SQL Templates window Default - Checked If checked, will load the .TXT files that populate the SQL Templates window from the network or local workstation where TOAD.EXE and TOAD.HLP are read.
External Editor Command line Enter the drive letter, path, and executable name of the external editor you want, e.g., c:\winnt\notepad.exe. While in the SQL Editor or Procedure Editor, press <F12> to invoke the external editor, which will start and load up the current TOAD Editor contents.
134
1 2
After you type the table name (or view name) and the period, press <CTRL>T (or wait a few seconds) A list of columns displays.
Click the item you wish to select. To select more than one item, hold down the <CTRL> key and click the items you wish to select.
Chapter 6
SQL Editor
135
4 5
Press <ENTER>. TOAD places the selected column or columns into the SQL Editor to build your query.
After a query populates the SQL Results Grid, you can press <CTRL>T to display a list of the columns from the SQL Results Grid.
136
1 2 3 4
From a SQL Edit window or a Procedure Edit window, on the common edit toolbar select the Show Tables window button. The Table Name Select window displays. Click the item you wish to select. To select more than one item, hold down the <CTRL> key and click the items you want to select. You can drag and drop the item(s), or copy <CTRL>C and paste <CTRL>V.
Chapter 6
SQL Editor
137
1 2 3 4
From the SQL Edit window or Procedure Edit window, on the common edit toolbar select the Show Columns window button. The Column Name Select window displays. Click the item you wish to select. To select more than one item, hold down the <CTRL> key and click the items you want to select. You can drag and drop the item(s), or copy <CTRL>C and paste <CTRL>V.
138
To get a description of an object while you are typing in the SQL Editor
This applies to Tables, Views, Procedures, Functions, and Packages. 1 2 3 Place the cursor on the object you want described. Press F4. A popup window displays that describes the object.
Chapter 6
SQL Editor
139
2 3 4 5
Right-click over the SQL results grid to display the Right-Click Menu. Select the Select Columns menu item. The Select Columns window displays. Uncheck the undesired columns until the columns you want are the only ones checked.
140 6 7 Select the Save As menu item from the Right-Click Menu. This saves the results to the Windows Clipboard. Check the Include Column Headers checkbox that is listed in the Save Grid Contents dialog.
Chapter 6
SQL Editor 8 9 Switch to the target Windows application, like Excel. Paste in the results.
141
142
Typing
1 2 3 4 5 Start with a blank window in the SQL Editor. Type in some SQL code. Execute it. Refine it. Save it to disk.
Loading a file
The Load a file into the editor button. You can click the triangle to display a dropdown list of the last 10 files you opened while you were in the SQL Edit window. Once the window is closed, the list is reset. 1 2 3 4 5 OR Drag and drop a file from Windows Explorer to the SQL Editor. Click the Load a file into the editor button on the SQL Editor toolbar. A Select File SQL Edit window displays. Click the desired file. Click the Open button. The file loads into the SQL Editor.
Chapter 6
143
You can also open a file into the SQL Editor, or Procedure Editor, via the File > Reopen File menu. There is a list of the last 10 files opened. This list is saved and restored to the file SQLFILES.TXT in the TOAD\TEMPS folder.
144
2 3 4
On the TOAD Options dialog View > Options menu item, SQL Editor node, you can choose to save only the SQL commands that executed without errors. To do this, check the Save only statements that are valid checkbox. This is a useful filter because otherwise the recall list will fill with queries until you get it right.
select items from dept select item from dept (invalid) (invalid) (valid)
Another option lets you enter the number of previous SQL statements that you want to save and recall. The default is 100. The list of previous SQL statements is stored to and retrieved from SQLS.DAT. Refer to the Recall and Add SQL topic, page 55, for more information.
3 4
Chapter 6
SQL Editor The list of personal SQL statements is stored to and retrieved from PERSSQLS.DAT.
145
5 6
The list of named SQL statements is stored to and retrieved from NAMEDSQL.DAT.
146
Procedure Editor
The Procedure Editor, also called the Stored Procedure Edit/Compile window, lets you create or modify procedures, functions, packages, triggers, types, and type bodies. It also has a PL/SQL debugging function and can show errors for objects if it encounters errors while compiling. See the Debugging chapter (page 183) for more information about debugging. By clicking the right mouse button or pressing F10 you access a context menu with numerous options such as Set Bookmark, Uncomment Block, and Show Edit Toolbar. 3 ways to invoke the Procedure Editor window Click the third button on TOADs main toolbar. Select menu item Database > Stored Procedure Edit. Set the Procedure Editor to StartUp on new connection in the View > Options > Startup dialog.
148
Toolbar Buttons
The Stored Procedure Edit/Compile toolbar
Compile the current complete statement The next 3 buttons only display when the Enable Compiling Multiple Objects From a Single File option is checked in the Options dialog, Procedure Editor tab. Execute FROM the cursor position to the end of the editor Execute TO the cursor position from the beginning of the editor Execute the highlighted statement
Load a SQL file into the Procedure Editor This button has a dropdown arrow that lists the most recent files used while this editor window was open. Save the Procedure Editor contents to a new filename Save the current editor contents to the file, only active if youve made changes to the script Check file out of source control, lets you check files out of SourceSafe Check file in to source control, lets you check files into SourceSafe Load source from existing object in the database This button includes a dropdown arrow and list to select from the most recent objects loaded from the database while this editor window was open. When the editor is closed, the list is reset.
Chapter 7
Procedure Editor
149
Reload the object from database or file Create a new Procedure, Function, Package, or Trigger Compile Dependent procedures (objects that call this procedure) SQL Lab/SQL Impact (includes dropdown that invokes SQL Lab (when installed) when QA report is selected, and invokes SQL Impact (when installed) if Where Used is selected. Change active session for this window This button includes a dropdown arrow that lists the available sessions.
If you have the PL/SQL Debugger option, then these eight buttons display to the right of the Stored Procedure Edit/Compile toolbar. Refer to the PL/SQL Debugger chapter (page 183) for more information.
Execute procedure using existing arguments Set Parameters Step Over Trace Into Trace Out Halt Add Watch Compile Dependent Procedures with Debug information (procedures called by your procedure)
150 There is a second toolbar on the Procedure Edit window, parallel to the toolbar described above. The second toolbar is the standard TOAD editing/formatting toolbar, which is also used in the SQL Edit window. See page 37 for details. To turn on or off the common edit toolbar, right-click over the proc edit toolbar and select Show Edit Toolbar. There is also a TOAD Option, Editors tab, for Show Editor Toolbars.
In this window the Show Edit Toolbar option is checked, so the Edit Toolbar is displayed.
This is the same window with the Show Edit Toolbar option in the Right-Click Menu unchecked, so the Edit Toolbar is not displayed.
Chapter 7
Procedure Editor
151
Shortcut Keys
Shortcut Key F1 F2 F3 F4 F7 F9 F10 F12 <CTRL>A <CTRL>C <CTRL>D <CTRL>F <CTRL>G <CTRL>L <CTRL>O <CTRL>R <CTRL>S <SHIFT> <CTRL> S <CTRL>T <CTRL>U <CTRL>V <CTRL>X <CTRL>Z <SHIFT><CTRL>Z <CTRL><HOME> <CTRL><END> Function Display Window Help File Show/Hide error panel Find Next Occurrence Describe Table, View, Procedure, Function, or Package in popup window Clear all text Compile Display Popup Menu Pass the SQL or Stored Procedure Editor contents to the specified External Editor Select all text Copy Display procedure arguments, for functions tells you the return datatype Find Text GoTo Line Convert Text to Lowercase Open a text file Find and Replace Save file Save File As Display columns dropdown Convert text to Uppercase Paste Cut Undo last change Redo Last Undo Go to col. 1, row 1 of the editor Go to the last line of the buffer
152
Display code template (key combination + <CTRL> <SPACE>) displays the applicable template Cycle through the collection of MDI Child windows Compile Autocomplete tablenames
Chapter 7
Procedure Editor
153
Main ways to get code into the Procedure Editor Read from file Load from existing object from database Create new Procedure Editor dialog Type/Paste from scratch Drag and Drop from File Explorer
The F9 key compiles and then stores the code in the database.
154
3 4 5
Select the desired schema from the schema dropdown list. You can filter using object types and a starts with, includes, excludes filter. To preview the source for an object, select the object from the object list. Or, just double-click an object name to load it directly into the Procedure Edit window. Click the red right arrow.
Chapter 7 7
Procedure Editor The selected objects SQL script is displayed in the SQL script area of the Select Database Object window. Click OK.
155
The script is opened in the Procedure Editor and the Select Database Object window closes automatically. The filter button on the Select Database Object window shows and hides the four widgets for filtering. If you hide the widgets, you have more area for the grid.
156
The Create New Procedure button displays the New Procedure dialog where you choose the object type from a drop down list and enter the object name. It then loads a template from the TEMPS folder.
3 4 5
Select an object type from the dropdown list. Click in the Object Name textbox and type in an object name. You can check or uncheck the Include or REPLACE option? checkbox. Checked produces create or replace procedure procedure_name... which WILL overwrite an existing procedure with the same name. Unchecked produces create procedure procedure_name... which will NOT overwrite an existing procedure with the same name. Click OK. The template script with your object name is pulled into the Proc Editor.
6 7
The templates are NEWFUNC.SQL for Functions, NEWPACK.SQL for Packages, NEWPROC.SQL for Procedures, and NEWTRIG.SQL for Triggers. You can edit the templates to create a common starting point for new stored procedures. If you are creating a trigger, then the BEFORE/AFTER radio buttons and the INSERT/UPDATE/DELETE checkboxes become enabled.
Chapter 7
Procedure Editor
157
There is even an option to load the templates from the network if you elected to install TOAD to a network server share. See page 133 for details. TOAD will automatically substitute values for keywords in the templates. TOAD will perform the following substitutions. Object Name: Sysdate: Date/Time: Date: Time: Username: %YourObjectName% or *YourObjectName* %SYSDATE% %DATETIME% %DATE% %TIME% %USERNAME% (set in TOAD Options, Procedure Editor)
For example, this template: /* Object Name: %YourObjectName% */ /* Date: %DATE% */ is translated into: /* Object Name: My_Proc_Name /* Date: 5/15/2000 */ */
The Procedure Edit window is divided into two panels. The left panel contains the Package Navigator List, a list of objects or package contents. Every package is composed of a Specification (SPEC) and Body, which is displayed in the hierarchy on the list. Functions in the list are indicated with an f( ) and Procedures in the list are indicated with a p( ).
158
The right panel is the Procedure Editor which lists the code for the selected object.
Chapter 7
Procedure Editor
159
The Error panel can only display one error at a time, so arrow buttons let you advance forward and backward through the errors. The displayed error is highlighted in the procedure script in the display. The Status panel shows the Row number and Column number of the cursor position, whether or not the code has been modified, VALID or INVALID status, and whether or not the code was compiled successfully or compiled with errors. A vertical splitter between the package navigator list and the Procedure Editor lets you resize the navigator list and the editor. A horizontal splitter between the Procedure Editor and the error panel can be sized up or down.
The Procedure Edit window allows multiple statements per file, only if the TOAD Option, Procedure Editor tab, Enable Compiling Multiple Objects From a Single File is checked. Package Specifications and Bodies can coexist in the same file.
160
Execute button
You can run the selected procedure with the Execute button. For example if GIVE_RAISE is the selected procedure, if you press the Execute button it will run the GIVE_RAISE procedure. If you select the Load Object from Database button you get a filter window. If your database contains many items, uncheck the option on the TOAD Options dialog, Proc Edit tab, Automatically show objects on Select Database Object Window and set up filters before clicking the Execute button. This will populate the list of existing objects much more efficiently.
The red arrow lets you select objects from the left. Drop downs let you filter the lists.
Chapter 7
Procedure Editor
161
If you have the PL/SQL Debugger option and you click in the gutter of the Procedure Editor, a breakpoint is created. So, when selecting text with the mouse, drag the selector within the text area.
162
Navigator List
Navigator buttons
Synchronize navigator list to altered code This button synchronizes the navigator list to the code. If you edit source in the editor, this button will synchronize the list with your new edits.
Shrink navigator list This button shrinks the navigator list to a narrow empty band so that client space is maximized. It also displays the Expand navigator list button.
Expand navigator list This button displays after you shrink the navigator list. It lets you expand the navigator list.
Sort/Do not sort navigator list alphabetically This button lets you sort the list of package functions and procedures alphabetically or in the order they appear in the package. If the button is UP, the list appears in source code order. If the button is DOWN (depressed) the SPEC and BODY lists are presented alphabetically. Here, the button is depressed so the SPEC and BODY lists are alphabetized.
Close navigator list This button closes the navigator list. If you close the navigator and want to reopen it, you need to right-click and select Show Navigator List. The right-click menu contains the Show Navigator List item.
Chapter 7
Procedure Editor
163
NOTE: The Editors tab contains options common to both the Procedure Edit Window and the SQL Edit Window.
164 Reload files when activating TOAD if the file time stamp is changed Default Unchecked If checked, this allows editing in an external editor. When a Procedure Edit window containing a file is reactivated (gets focus), TOAD will check the date stamp of the file to see if it was modified by the external program. If the file was modified, TOAD will display a prompt dialog that will say that the file date/time has changed and ask you if you want to reload it. Select Yes, and the file will reload.
Highlight names of stored procedures Default - Checked This option refers to syntax highlighting, If checked, TOAD will highlight functions and procedure names, in the Procedure Editor, SQL Editor, and the other read-only editors in TOAD. For example, if PROC_B is a stored procedure, and youve designated stored procedures to be displayed in red, PROC_B will display in red. NOTE: you must select a custom color in the Editor Options dialog, Highlighting tab, for User Procedures.
Include Owner When Extracting Source From Database Default Unchecked If checked, this basically puts owner name in the command line. When exporting source, if this option is checked, source will be prefixed with the owner. Example:
CREATE OR REPLACE PROCEDURE STHOMAS.PROCEDURENAME IS
Hide the errors panel unless errors are raised following a compile Default Checked If checked, the error panel is hidden until an error on compile occurs. If unchecked, the error panel is always displayed.
Chapter 7
Procedure Editor Enable compiling multiple objects from a single file Default Unchecked
165
If checked, you can compile more than one object from a single source file. If not checked, you are limited to one object per file, but you can still create separate MDI windows for each object. NOTE: this MUST be unchecked in order to use the PL/SQL Debugger, because the debugger can handle only one object at a time per file.
Use 'Create' only when loading objects from the database Default Unchecked If this option is checked, the Create Procedure will not overwrite an existing object. When loading PL/SQL into the Procedure Editor, the Create clause will read, "Create Procedure/Function/Package ...". This is useful if when compiling a procedure, a different object of the same name already exists in the database, hence the compile will fail, instead of overwriting it. If unchecked, the Create clause will read Create or Replace Procedure/Function Package and overwrite any existing objects that have the same name.
Automatically show all objects on Select Object from Database Window Default Unchecked If checked, the Object Type filter is bypassed, and all objects from all object types are displayed right away.
Search for Dependent Objects following a compile Default Checked If checked, TOAD will search the database for dependent objects of the currently compiled PL/SQL object (those procedures that call this procedure), and if any are found, will enable the Compile Dependencies button. If unchecked, the Compile Dependencies button is never enabled.
166 If PROC_A calls PROC_B and you are editing and recompiling PROC_B, Oracle flags PROC_A as INVALID, forcing a need to recompile PROC_A. TOAD will check for this dependency, enable the Compile Dependencies button, which you can then click to compile PROC_A, and therefore not leave any INVALID objects out there as a result of your changing PROC_B.
User Name for New Procedure Templates %USERNAME% textbox Default - Blank The value you enter in the box will be substituted automatically for %USERNAME% when new procedure templates are read up into the Stored Procedure Editor.
Show Package Navigator Panel Default Checked If checked, displays the Package Navigator hierarchy of package procedures and functions in the panel that is to the left of the Stored Procedure Editor. This lets you click the procedure names in the navigator to advance the editor to that section of source.
Sort Package Navigator Panel Default Checked If checked, this option displays the package procedures and functions in alphabetical order. If unchecked, it displays them in original package order.
Notification when compile process is complete Default Unchecked When checked, this plays the TOADLOAD.WAV (croak sound) when the compile of a procedure has completed.
Chapter 7
Procedure Editor Only show one Procedure Editor per database connection Default Unchecked If checked, permits only one Procedure Edit window per database connection, to conserve windows resources.
167
This is similar to the option that limits the number of SQL Edit windows and Schema Browser windows, per connection.
168
Right-Click Menu
Click the right mouse button while you are in the Procedure Editor to access the Right-Click Menu. This provides a shortcut to the functions listed in the menu. You can also press F10 to display the Right-Click Menu. Many of these items are the same as the items found in the SQL Edit window RightClick Menu. Some of the functions that the menu contains are: Describe Displays popup window that describes the selected object. If the item is a procedure it displays the procedure popup window. Search Knowledge Base If youve installed RevealNets Knowledge Base, you can easily access and search the Knowledge Base through the Right-Click Menu. Close File/Tab Closes the current File/Tab New File/Tab Adds another tab and places the cursor on line 1 of your new script Comment Block Adds dashes before the line Format Statement Formats your SQL statements using RevealNets PL/Formatter product if installed or just a basic format if PL/Formatter is not installed. Find Closing Block Finds closing parenthesis, "END" for matching "BEGIN" or "END IF" for matching "IF Show Navigator List Shows/hides the navigator panel
Chapter 7
Procedure Editor
169
If none of these options are enabled, TOAD did not find the following registry setting:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SOURCESAFE\SCCSERVERPATH
This path specifies the location of the SSSCC.DLL file and is required to interface with VSS. Note: The client portion of the VSS install must be run. You cannot run only the server piece of the VSS install.
170 2 Click the Check File Out of Source Control toolbar button. If you have not logged into VSS recently... The VSS Login window displays. Enter your VSS username and password. Select the desired VSS database. Click OK to proceed. 3 4 5 6 7 The TOAD VSS Interface window displays. Drill down to the project. Select a file to check out. Click the Check Out button. TOAD will check the file out of SourceSafe, place it into the working folder, and load the contents of the file into the Procedure Editor window.
To check in a file
1 Save the editor contents back to the checked out file in the working folder (click the Save File floppy disk icon button in the toolbar OR Select File > Save from the menu OR Press <CTRL>S). If you do not save the changes back to the file, TOAD will check the unchanged file back into SourceSafe. TOAD does NOT check in the editor contents, it only checks in saved files. 2 3 4 5 6 Click the Check File In To Source Control button on the toolbar. The TOAD VSS Interface window displays. Drill down to the appropriate project. Select the checked out file. Click the Check In button to check the file back into SourceSafe. Alternatively, you could click the Undo Check Out File button to undo the check out and not save your changes. Click the Cancel button to close the TOAD VSS Interface window.
Chapter 7
Procedure Editor
171
Stored procedures are useful for processes that will be repeated over an over again. In this example, the procedures are the temperature conversion functions.
172
F_TO_CELSIUS
Create a new procedure First you need to create a new stored procedure function that will convert Fahrenheit to Celsius.
Chapter 7
Procedure Editor 6
173 A template script displays with F_TO_CELSIUS in the Create or Replace line.
(Now you need to edit the script with the input and return arguments.) 7 8 After F_TO_CELSIUS on the first line type the following:
(IN_FAHRENHEIT NUMBER)
Scroll past the comment section and after the BEGIN statement edit the next line (it contains a tmpvar holder) to match the following formula.
OUT_CELSIUS := (5/9) * (IN_FAHRENHEIT 32);
The final script should look similar to this. Here, all extra comments and spaces have been deleted. Compile button
174 You can compile the script for a quick syntax check. If you get errors theyll display in the error panel, and you can correct and recompile.
C_TO_FAHRENHEIT
Now you can go to Edit > Select All and then Edit > Copy, copy the code youve just created, and paste it into a new tab in the Procedure Editor. (See the Right-Click Menu, option New File/Tab.) Then use the Edit/Replace function to change the copy of the Fahrenheit to Celsius script to a Celsius to Fahrenheit script.
To Use Edit/Replace
1 2 3 4 Place the cursor on the text you want to replace, in this case F_TO_CELSIUS. Type <CTRL>R or choose the Edit > Replace menu item. The Find and Replace dialog displays with the selected item already in the Text to Find entry. Type in what you want to replace the text with, in the case C_TO_FAHRENHEIT.
5 6 7 8 9
Click the Replace All button to replace all occurrences of the text. Press ESC to close the dialog window. Select your next replacement item, which in this case would be IN_FAHRENHEIT. Press <CTRL>R to open the Find and Replace dialog. The selection is already entered. Type in IN_CELSIUS for the replacement.
Chapter 7
175
11 Repeat the Find/Replace or manually edit to change the following OUT_CELSIUS to OUT_FAHRENHEIT 5/9 to 9/5 32 to + 32 (You'll need to manually edit line 5 so that the formula is in the correct order.) The final script should look like the following.
176 Now, using the just created Celsius to Fahrenheit script, you can test the function.
1 2 3 4 5
Click the Set Parameter button. An Execute Procedure dialog displays with your argument filled in. Type in a value in the value cell, such as 22. The value is automatically entered in the SQL Code panel. Check the Output OUT args checkbox. This sets up anonymous PL/SQL block to test the function and uses the DBMS_OUTPUT package to get an output.
Chapter 7
Procedure Editor
177
6 7 8
Click OK. The dialog closes. Click the Execute button. The value displays in a DBMS_OUTPUT dialog box.
You can also test the functions in a SQL Edit window, but the Procedure Editor provides a shortcut to typing in your own anonymous PL/SQL block.
178 You can also grant public privileges for your procedures. So, anyone on your database can use your stored procedure function. This involves the Schema Browser, which is discussed in detail in the Schema Browser chapter.
2 3
The Schema Browser window displays. On the left panel, select the Procs (Procedures) tab.
4 5 6
Expand the functions list. Select the C_TO_FAHRENHEIT function. Details for the selected function display in the right panel. Click the Privileges button. Privileges button
The Privileges window displays. The list is organized by user schemas, then PUBLIC, then individual roles.
Chapter 7
Procedure Editor 8 9 Select PUBLIC from the list. Check the EXECUTE checkbox, which gives Execute privileges.
179
10 Click the Apply button. 11 A dialog will display telling you the changes to the privileges have been applied.
You can now close the Privileges window and repeat these steps for the F_TO_CELSIUS function. While you are still in the Schema Browser window, you can click the Grants tab and see the privileges that have been granted from your procedure to other users or roles.
180 You might want to create a public synonym for your procedure.
3 4 5
Here, the %TO filter displayed all objects that contained TO. TOAD automatically added % to the end (Like%), so %TO became a %TO% filter. Then both C_TO_FAHRENHEIT and F_TO_CELSIUS were selected by pressing the <CTRL> key while clicking on the objects. 6 Double-click on a single object to move it to the lower panel. Or you can multi-select several times, and drag and drop them to the lower panel.
Chapter 7
Procedure Editor 7
181 Checkboxes let you choose whether or not you want to include a drop statement and whether or not you want to make this a public synonym. (In this example, we want a public synonym.) You could also rename the synonym by selecting it in the bottom list (click, pause, click) and typing in a new name. Click the green arrow to execute the synonym script. A message window will confirm the synonym has been created.
8 9
Now that youve granted public privileges and even included public synonyms, anyone in a different schema can easily access your C_TO_FAHRENHEIT and F_TO_CELSIUS stored procedure functions. While in the SQL Editor, after typing the procedure name you can press F4 to display a function popup describe window that shows details including the type of argument it is, the code for the argument, and the grants. You could select and copy the code into your own script.
Procedure Argument Display Typing the procedure name and <CTRL>D would pull in a line of code that includes the IN and OUT arguments, which, for this example, is the IN_CELSIUS statement. It will still need to be edited, but parts of the code are already filled in for you. In the case of functions, it includes the datatypes, return types, etc.
182 Package List/Procedure Argument Display Combination When youre in either a Procedure Edit window or a SQL Edit window, you can type the package name and a period and a popup list displays a list of functions and procedures in that package. After you select the package function or procedure, <CTRL> D looks up the argument. This is basically two shortcuts for two steps.
Using SourceSafe Its always a good idea to save your code into SourceSafe. Refer to the Source Code Management section of this chapter (page 169) for more information about SourceSafe.
PL/SQL DEBUGGER
The PL/SQL Debugger is an optional feature for TOAD. The PL/SQL Debugger, which is run in the Procedure Editor window, lets you step through the code as it executes, line-by-line, statement-by-statement. The Debug menu is only enabled in a Procedure Edit window. You can run a debug session with or without argument values. With the click of the toolbar button, debugging begins and stops on breakpoints as appropriate or it runs to the end. If you have the Debugger installed, the Debug toolbar (8 buttons) displays to the right of the Stored Procedure Edit/Compile toolbar in the Procedure Edit window. You can also access the Debug menu using the keyboard by pressing <ALT>U. Unless you specify parameter values in the Execute Procedure dialog, they will default to NULL values. So, for functions that depend on the argument values, you can still check the branching, logic, etc. You can also set argument values in the Execute Procedure dialog, and it will use those values. You can add, edit, and delete breakpoints. You can also set conditional breakpoints. After the procedure has executed, you can view the DBMS_OUTPUT from the server.
184 Dependencies You can use the Debugger to check for dependencies. If procedure A calls procedure B, and you are editing and debugging procedure B, and then you click F9 to compile procedure B, procedure A is marked invalid (the Oracle dictionary gives procedure A an invalid status. This is not visually indicated, but when you try to execute procedure A, it wont execute, itll be rejected). So, TOADs solution to this is the Check dependencies following a compile option button. This refers to checking for upper dependencies. What is an upper dependency? If procedure A calls procedure B, and you are editing procedure B, procedure A is the upper dependency. If the Options > Procedure Editor > Search for dependent objects following a compile is checked, TOAD runs an additional query to see if any procedures call the current procedure. So, if the query includes dependencies (procedures that call your procedure) the Compile Dependencies button is enabled. Notice the symbol on this button is a combination of the right arrow which is used in TOAD as a compile symbol, and a symbol that represents a hierarchy of procedures. Compile Dependencies When you click the Compile Dependencies button, TOAD will recompile all procedures that call your procedure. The button then becomes disabled. If you make any additional edits and compile the procedure, the button is enabled again. If you want to visually view dependencies and which dependencies are invalid, you can go to the Schema Browser and click the Procedure tab, then the Deps(uses) and Deps (used by) tabs. This visually shows anything that has an invalid status with a red X over the object. The Schema Browser is discussed in detail in the Schema Browser chapter (page 231).
Chapter 8
PL/SQL Debugger
185
Requirements
Minimum Oracle Database Requirements For all databases, you must have the Oracle Probe API installed in order to debug PL/SQL using TOAD. Check for the existence of a package named DBMS_DEBUG in the SYS schema. Also check for grant execute to public, to roles, or to users.
Heres how to check what Probe version you have: Run this anonymous PL/SQL block in the SQL Editor with a DBMS Output window open to find out what version of the Probe API you have:
declare probe_major_ver varchar2(10); probe_minor_ver varchar2(10); begin dbms_debug.probe_version(probe_major_ver, probe_minor_ver); dbms_output.put_line('MAJOR='||probe_major_ver); dbms_output.put_line('MINOR='||probe_minor_ver); end;
186
Here are some notes about using the PL/SQL Debugger on different Oracle database versions.
Notes Inspect package variables by stepping into the package first, then add the watch on the package variable. For the Call Stack to display, you must set the BLANK_TRIMMING value to TRUE in the init.ora Oracle Initialization parameters file and restart your database. Otherwise, the Call Stack menu will be disabled. Refer to your Oracle documentation regarding the effects of the BLANK_TRIMMING setting. On Oracle 7 databases, if you receive Debugger is not responding message, comment out all DBMS_OUTPUT statements and then recompile, and use watches to display the values. Also uncheck Enable DBMS Output before every debugging session.
Oracle 8
BLANK_TRIMMING requirement also refers to databases 8.0.4 and 8.0.5. The PL/SQL Debugger works fine on Oracle 8 databases. No notes or issues. The PL/SQL Debugger works fine on Oracle 8i databases.
Oracle 8i
ADDITIONAL NOTES: You cannot use the Eval/Modify window to change argument values. Custom data types (like Oracle 8 objects and records) are supported by the debugger, but the Execute Procedure dialog might not be able to generate a valid block when these types are used. You can manually edit the block to correctly declare and initialize these types for their use in the debug session. The only datatypes fully supported in arguments are scaler datatypes (such as number, character, date).
Chapter 8
187
Lengthy server delays (such as when you open large cursors or have a slow database connection) might cause a timeout that results in the Debugger is not responding) message. You can increase the timeout period in the options screen to correct this problem. Watches on package variables are only allowed for Probe v2.2 or higher.
188
4 5
Click in the Enter Authorization Key textbox and enter the registration key. Click OK.
Open a new Procedure Edit window. The items on the Debug menu should now be enabled.
Chapter 8
PL/SQL Debugger
189
Execute procedure using existing arguments Set Parameters Step Over Trace Into Trace Out Halt Add Watch Compile Dependent Procedures with Debug information (procedures called by your procedure)
190 If the Enable compiling multiple objects from a single file option is checked, the debug buttons (Execute, Set Parameters, Step Over, Trace Into, Trace Out, Halt, and Add Watch) are disabled on the right side of the toolbar. You must have the Enable compiling multiple objects from a single file option unchecked on the TOAD View > Options > Procedure Editor tab in order to use the Debugger. (If the option is turned on (checked), and you attempt to debug multiple objects, TOAD automatically unchecks the option and begins to debug as if there were a single object in the file. A warning message box also displays.) You cannot debug a file containing multiple PL/SQL objects. There has to be one-to-one correspondence from the lines of source in the editor to the lines of source in the database.
Objects you can Debug Top-level Functions Top-level Procedures Package Functions Package Procedures Triggers
Objects you cannot debug Java classes Oracle 8 object methods Anonymous PL/SQL blocks
Chapter 8
PL/SQL Debugger
191
The Debug menu is enabled if you have the Debugger installed and you are in the Procedure Edit window. The Debug menu is disabled for all other TOAD windows.
You can also access a smaller Debug menu in the Procedure Edit window. Right-click over the editor, select Debug from the menu, and several Debug functions will appear on the submenu.
192
Debug Functions
Function Execute Current Source Set Parameters Description Starts debugging and runs to the next breakpoint or end of procedure with the current argument settings (set using Set Parameters). Displays a dialog to set the IN or IN/OUT argument values, and, in the case of a Package, lets you select which package procedure or package function to debug. Once you are stepping through the code, this function runs to the end of the procedure or to the next breakpoint, whichever it encounters first. Once debugging has begun, it runs to the cursor location as if it were a breakpoint, and stops. Executes one line of code at a time, bypassing a procedure or function call. Executes one line of code at a time, stepping into other procedures as they are called. NOTE: Only the top-level procedure will have debugging information available for it. If you step into another procedure and want to view debugging information, click the Compile dependencies with debug button, (located on the end of the second row of buttons). Otherwise the message no debug information available will appear in the Watch window. Trace Out Halt Execution Add a Breakpoint at Cursor Evaluate/Modify Breakpoints Call Stack Executes to the bottom of the called procedure, returning to the caller to continue debugging the caller, stopping on the line following the call. Ends Debugging. Stops stepping through the code, retaining watch and breakpoint settings. Adds or removes a breakpoint at the cursor location. Displays a window where you can (on the fly) inspect and/or change values of variables and continue execution with the new values. Displays a dockable window of the currently set breakpoints, allowing you to add, edit, delete, enable, or disable breakpoints. Displays a dockable window of the current procedure or function call stack (which procedures called which other procedures). This list is meaningful only during execution, as indicated by the Running light in the status panel.
Chapter 8
PL/SQL Debugger
193
The Call Stack window is blank when you are at Idle. Also see the Requirements section in this chapter, page 185, for enabling the Call Stack window. Watches Add Watch at Cursor DBMS_OUTPUT Displays a dockable window of the current variables being watched, allowing you to add, edit, delete, enable, or disable watches. Adds a Watch at the cursor position. Displays a dockable window for displaying DBMS_OUTPUT generated from the procedure code. NOTE: The DBMS_OUTPUT content is not released from the database (and therefore not displayed) until all procedures have finished, or you force it to stop via the Halt button or Halt Execution menu item.
194
Chapter 8
PL/SQL Debugger
195
Press F7 (Trace Into) to start stepping through the code. TOAD generates the symbol table required to obtain debug information for this procedure.
If you want to step into other procedures and view debug information youll need to click the Compile Dependencies with Debug toolbar button before beginning the debug process.
196 You can set TOAD to Always compile dependent procedures Never compile dependent procedures Be prompted whether or not to compile dependent procedures To set any of these options go to View > Options > Debugging tab. Otherwise, watched variable values in the dependent procedures will have no debug information displayed in the watches window.
When you finish debugging your PL/SQL code, compile it once again by pressing F9 to discard the symbol table.
Chapter 8
PL/SQL Debugger
197
198
Chapter 8
PL/SQL Debugger
199
Colors
To set the colors of a breakpoint, current execution point, or any disabled breakpoint 1 2 3 4 Select the item type (breakpoint, current execution point, or disabled breakpoint) from the list at the left. Move the mouse pointer over the color selectors. Click the left mouse button to select a foreground color (e.g., the code text color). The letters FG appear on the palette on your selected foreground color. Click the right mouse button to select a background color. The letters BG appear on the palette on your selected background color.
Allow watches on package variables Default Checked This checkbox is provided because the Oracle Probe API call for watching package variables acts differently on Oracle 7 and Oracle 8 databases. On Oracle 7 databases, you have to step into the procedure BEFORE adding a watch on a package variable. On Oracle 8, you can set up the watch on the package variable before or after stepping into the procedure. If you do not want to inspect package variables, then uncheck this option.
Automatically show all debugging windows when debugging Default Checked When checked, this will bring up the docked window with all 4 windows: Breakpoints, Watches, Call Stack, and DBMS_OUTPUT if any of the four are opened. With this option unchecked, each window is activated separately, undocked.
200 Default Debugging Windows to StayOnTop Default Checked When checked, this will create the Breakpoints, Watches, Call Stack, or DBMS_OUTPUT window as a Stay-On-Top window when activated. Otherwise, they will be hidden underneath TOAD whenever the Stored Procedure Editor window gets focus.
Enable Trace Output while debugging Default Unchecked This checkbox creates trace information while the Debugger is running, which will help debug the Debugger interactions with the database. This is normally unchecked and is used for technical support or DBA. The trace files are written to the database server, folder specified by the USER_DUMP_DEST Oracle database initialization parameter.
Enable DBMS_OUTPUT before every debugging session Default Checked If this box is checked, after you run a procedure that contains DBMS_OUTPUT statements, the DBMS_OUTPUT window will display automatically.
Break on exceptions Default Checked A check in this checkbox causes the Debugger to stop when it hits a procedure exception (such as zero divide) and display a message. You can then continue debugging the exception handler code or stop.
Break on exceptions will cause TOAD to display a message like this whenever it hits an exception.
Chapter 8
PL/SQL Debugger Debug session timeout (in seconds) textbox Default 10 seconds
201
This option limits the amount of time that the Debugger will wait for the database to respond with debug information. You can enter the number of seconds. For a slow database, poor network speeds, or connection via modem, increase the number of seconds.
Date format for watches Default DD-MON-YY This dropdown menu lets you select a date format. DD-MON-YY MM/DD/YY MM/DD/YYYY which displays all 4 digits in the year NOTE: Date format does not affect the NLS_DATE_FORMAT for the TOAD sessions/connections, it only affects the debugger session.
Compile Dependencies Yes/No/Prompt Default No This will conditionally compile procedures called by your procedure with debug information just before debugging begins.
All the Option settings are saved in TOAD.INI and restored the next time TOAD is invoked.
202
The Breakpoints window is part of a group of windows (Breakpoints, Watches, DBMS_OUTPUT, and Call Stack) that are docked together into one window. Click and drag the tabs to separate them. They can all be displayed at the same time.
Chapter 8
PL/SQL Debugger An option in TOAD Options (View > Options > Debugging item) causes all 4 debug windows to open when any one debug window is opened. To activate this option check the Automatically show all debugging windows when debugging item.
203
204
Breakpoints
A breakpoint is a line in a program that you designate as a place where execution by the Debugger will stop. When the Debugger reaches a line with a breakpoint, it stops execution prior to executing any code that was on that line. Breakpoints Right-Click Menu When you are in the Breakpoints window, you can right-click to access a menu for breakpoints. If you right-click while a breakpoint in the list is selected, or you rightclick on a breakpoint in the list, additional items are enabled in the menu that apply to that specific breakpoint. Youll find this method provides a shortcut when performing various breakpoint functions.
Chapter 8
PL/SQL Debugger
205
Stop signs in the gutter and red highlighted lines indicate the breakpoints.
206
To edit a breakpoint
1 Different ways to perform this step Double-click the breakpoint in the Debug > Breakpoints window. Single-click the breakpoint in the Debug > Breakpoints window and rightclick to display the Right-Click Menu, Select the Edit Breakpoint menu item. While in the Debug > Breakpoints window, click on a breakpoint from the list and press <CTRL>E. 2 3 4 The Breakpoint Properties dialog displays. Edit the information. Click OK.
Chapter 8
PL/SQL Debugger Conditional Breakpoints A conditional breakpoint only breaks if a certain condition is met.
207
The format for Condition is: variable operator value. Supported operators are: <= <> >= < > = Less than or equal to Does not equal Greater than or equal to Less than Greater than Equal
When you run the Debugger, it will stop on the breakpoint only if the condition is met.
Pass Count Breakpoints You can also set breakpoints that break ONLY after a certain number of passes in a loop have occurred. These are known as pass count breakpoints.
Chapter 8
209
You can specify both a condition and a pass count. Then the break will occur after the nth (n = pass count number) time the condition is met.
Enabling or Disabling a Breakpoint Once you set a breakpoint you can temporarily disable it and then later enable it again.
210
Watches
A watch lets you designate a variable to be evaluated. A watched variables value can only be displayed during procedure execution. Watches Right-Click Menu While in the Watches window, right-click to access the Right-Click Menu list of watch specific commands.
Chapter 8
PL/SQL Debugger
211
To add a watch
Add Watch Different ways to add a Watch Double-click to select a variable in the editor. Click the Add Watch button in the toolbar and the variable will be added to the list of watches. From the editor, click the right mouse button. The Right-Click Menu displays. Select the Debug > Add Watch at Cursor menu item, or <CTRL>F5. From the Watches window, click the right mouse button. The Right-Click Menu displays. Select the Add Watch menu item. From the Watches window, Press <CTRL>A to bring up the add watches dialog window. From the Watches window, press <INSERT> to add a watch and <DELETE> to delete a watch.
NOTE: You cannot watch a trigger :new.column or :old.column value. The Oracle Probe API does not support it. It is recommended that users do not explicitly declare implicitly defined variables, because the implicit variable will be created anyway. So, the user can just inspect the implicit variable directly. Because of limitations in the Oracle Probe API, you cannot watch implicitly defined variables when they are also declared explicitly in the variables declaration section. For example, the following code is correct, but you cannot watch the Counter_Var variable as it loops. A workaround to this would be to explicitly declare a local variable, e.g., Counter_Var_Watched, and copy the contents as it is changed, then add the watch to the local variable, Counter_Var_Watched.
212
From this:
CREATE OR REPLACE FUNCTION F_Calc_Bonus (Salary_In IN NUMBER) RETURN NUMBER IS Counter_Var NUMBER; Bonus_Out NUMBER; BEGIN /* Set Bonus earned equal to 10 percent of the employee's salary. */ FOR Counter_Var IN 1..5 LOOP Bonus_Out := Salary_In * 0.10; END LOOP; RETURN Bonus_Out; END F_Calc_Bonus; /
To this:
CREATE OR REPLACE FUNCTION F_Calc_Bonus (Salary_In IN NUMBER) RETURN NUMBER IS Counter_Var NUMBER; Counter_Var_Watched NUMBER; Bonus_Out NUMBER; BEGIN /* Set Bonus earned equal to 10 percent of the employee's salary. */ FOR Counter_Var IN 1..5 LOOP Counter_Var_Watched := Counter_Var; Bonus_Out := Salary_In * 0.10; END LOOP; RETURN Bonus_Out; END F_Calc_Bonus; /
Chapter 8
PL/SQL Debugger The Watch Properties Window The Watch Properties window lets you set a number of options.
213
Package Variable If the variable you want to watch is a package variable, check the package variable checkbox. Also select the owner and package name. Otherwise, a watch variable is assumed to be within the current scope of the package procedure or package function.
Repeat Count In addition to the usual data types that you watch such as date, number and varchar, you can also watch array values and record types. If you have an array such as MyArray(1..10) and set up a watch on MyArray(1), then you can set up a Repeat Count setting of # to examine MyArray(1), MyArray(2), and MyArray(3) all at the same time.
214 Digits The digits box is for the number of significant digits you want displayed.
Format If you want the watch value displayed in a different format than the default, select your format options. Notice Default is preselected. Non-printable characters (ASCII 0-31) embedded in strings can cause confusing errors and are difficult to debug because most fonts cannot render then in a meaningful way.
String\Dec displays non-printable characters, such as CR and LF in decimal format. For example, This is a test.\013\010
String\Hex displays non-printable characters in hexadecimal format. For example, This is a test.\$D\$A
Enabled You can temporarily disable a watch by double-clicking the watch and unchecking the Enabled checkbox. OR Select the watch Right-Click to display the Right-Click Menu Select Disable Watch. You might want to disable some watches to improve the performance of the debugger. As each line of code is executed, each watch that was set has to be evaluated. So, the fewer watches the debugger has to evaluate, the faster it will run.
Chapter 8
PL/SQL Debugger
215
To edit a watch
1 Double-click the watch in the Watches window (Debug > Watches) OR Single-click to select the watch. Click the right mouse button to display the menu Select the Edit Watch menu item OR Press <CTRL>E. The Watch Properties dialog window displays.
To delete a watch
1 2 3 Display the Watches window (Debug > Watches). Select the watch. Press <Delete> OR Press <CTRL>D.
216
Call Stack
The Call Stack window displays the chain of functions and procedures as they are called, in the order they are called, with the most recent function or procedure listed on the top. At the end of each procedure name is the current line number in that procedure. So, if procedure A line 5 called procedure B, then the call stack would look like this: Procedure B(1) followed by Procedure A(5).
This Call Stack window shows that you are on line 10 in procedure "Example".
You can navigate among multiple procedures via the Call Stack window either by Double-clicking the procedure name in the Call Stack window OR Select the procedure. Right-Click to display the Right-Click Menu. Select View Source.
See the Requirements section of this chapter (page 185) for information about enabling the Call Stack window feature.
Chapter 8
PL/SQL Debugger
217
DBMS_OUTPUT
You get to this dialog via the Database > DBMS_OUTPUT menu item. Oracle provides a package, called DBMS_OUTPUT, which is specifically designed with functions for debugging PL/SQL code. It uses a buffer, that your PL/SQL code writes into, and then a separate process queries the buffer out and displays the contents. Output only comes out after the procedure has completed execution, not while you are single stepping through the code. In nested procedure calls, all procedures must have run to completion before any DBMS_OUTPUT content is displayed. The Procedure Editor Right-Click Menu lists DBMS_OUTPUT specific commands. Buffer size defaults to 20,000 bytes. The maximum size is 1,000,000 bytes. You can edit DBMS_OUTPUT content, make comments, delete specific lines of output, etc. The standard copy, cut, and paste keys work in the DBMS_OUTPUT textbox.
218
tmpVar is highlighted and Make Output Statement is selected from the Right-Click Menu..
Chapter 8
PL/SQL Debugger
219
and pasted into the SQL script where the tmpvar is now part of the DBMS_OUTPUT statement.
220
In the earlier example, TmpVar was set to = a+b+c which is 1+2+3, so the DBMS_OUTPUT window shows the tmpvar value is 6.
Blank Output You can also select Blank Output to get a DBMS_OUTPUT template which you paste into your script and fill in the blank sections yourself.
Remember, if you have the Options > Debugging > Enable DBMS Output option on, the DBMS_OUTPUT window opens automatically after completion of the procedure.
Chapter 8
PL/SQL Debugger
221
Debug Functions
This section shows different debug functions and procedures. NOTE: When debugging a procedure, if no breakpoints have been set and no errors occur, the procedure will execute to completion and it appears to have done nothing. This is a common cause of confusion when people first start using the debugger. To avoid this confusion, if you havent set any breakpoints you might want to use the Step function <F8> instead of the Execute function <F11>.
Select Debug > Execute Current Source OR Click the Execute button OR Press the shortcut keys <SHIFT>F9. Debugging begins and stops on the breakpoints as appropriate or runs to the end. If your procedure contains IN or IN/OUT argument values, and those values have not been set (via the Execute Procedure dialog), the values will be set to NULL.
2 3
EXAMPLE:
FUNCTION Bonus_Out BEGIN /* Set Bonus earned equal to 10 percent of the employees salary. */ Bonus_Out := Salary_In * 0.10; ( 'Bonus_Out = ' ||to_char(Bonus_Out)); DBMS_OUTPUT.PUT_LINE Return Bonus_Out; END F_CALC_BONUS; F_CALC_BONUS NUMBER; (Salary_In IN Number) RETURN NUMBER IS
222 In this case, Salary_In would be set to NULL. This would not be very useful for functions that depend on argument values, but it is useful for checking branching, logic, etc. If you set any argument values in the Execute Procedure dialog, then those values and settings will be used. When debugging a package, you must select which package procedure or package function to start debugging. You select this in the Execute Procedure dialog. Once you have selected the package procedure or function to execute, the Execute toolbar button is enabled. If you debug a trigger, you have to go through the Execute Procedure dialog in order to set up the anonymous PL/SQL block that will invoke the trigger.
Chapter 8
PL/SQL Debugger
223
Execute Procedure
There are different uses for the Execute Procedure dialog depending on the type of PL/SQL object you wish to debug: Procedures, Functions, Package Procedures, Package Functions, or Triggers.
224 1 2 For each IN or IN/OUT argument, enter the desired values in the Value column. When you finish entering argument values, click OK.
TOAD debugs the given PL/SQL procedure via an anonymous PL/SQL block. As you enter values, the anonymous PL/SQL block code updates. You can also directly edit the anonymous PL/SQL code block. If you want to resynchronize the anonymous PL/SQL block with the values entered in the grid, click the Rebuild Code button. The Rebuild Code button becomes enabled when you make manual changes in the anonymous PL/SQL block.
Execute Package
When debugging packages, a list displays for you to select which package procedure or package function to execute. In the Procedure list, single-click to select a package procedure to debug, then enter your argument values in the Value column, if desired.
Chapter 8
PL/SQL Debugger
225
Debugging Triggers
When a trigger is executed, a preprogrammed operation occurs on a table. Youll notice that debugging triggers is different from debugging procedures or functions. The values entered are for the column values, not the argument values. You must go through the Execute Trigger dialog to set up the proper anonymous PL/SQL block to invoke the trigger, at which point the Execute button on the Debug toolbar becomes enabled.
226
Chapter 8
PL/SQL Debugger
227
Where clause values must be entered before you can debug a DELETE trigger.
228
Evaluate Modify The Evaluate/Modify window lets you view the value of a variable on the fly, without having to set a watch. It also lets you change the value of a variable and continue executing. This is useful for advancing a loop variable to the end of a FOR COUNTER_VAR IN 1..500 LOOP loop statement. In this case, evaluate Counter_Var and set its new value to 499. So, you dont have to debug through the loop the extra 498 times.
Package Variable Checkbox Check the Package Variable checkbox thats in the Evaluate/Modify window, if the variable to evaluate is a package level variable and not a local variable.
The Evaluate/Modify window is not dockable with the rest of the debug windows.
Chapter 8
PL/SQL Debugger
229
Schema Browser
The Schema Browser separates database objects by type, using tabs. For example, all tables appear on the Tables tab, all views appear on the Views tab, etc. Click on an individual object in an object tab list at the left of the Schema Browser window to display the details on the details panels to the right of the Schema Browser window. So, you can quickly view all objects of one type with a single click of the mouse. Youll find it a nice change from other database navigation tools which are often slow, cumbersome, burdened with excessive graphics, and hierarchical in approach. It also lets you compare details between objects of the same type with one click. Keyboard users can easily use the scroll keys to perform the same tasks.
3 ways to invoke the Schema Browser window Click the second button in TOADs main toolbar. Select menu item Database > Schema Browser. Set the Schema Browser to open automatically when a new connection is made in the View > Options > StartUp dialog.
232
Toolbars
The Schema Browser window consists of object lists on the left panel and details on the right panel. Select a tab for objects on the left to display details for that selection on the right panel. These are the toolbars for the object lists on the left panel:
Object Toolbars Tables Indexes Procs Triggers Sequences Views Synonyms Constraints Db Links Java
Chapter 9
Schema Browser Object Toolbars Buttons Functions Some button icons are common to more than one Object tab.
233
Create a script for the selected object, copy it to the clipboard Export data from the selected table as "INSERT INTO..." statements to either the clipboard or to a file Add or change privileges of the selected object to/from other users or roles Filter to only display objects that meet a certain criteria, e.g., "Starts with ABC...", "Contains", "Ends With", or other object type specific criteria Add a column to the end of a table Truncate all data in the table via the no-rollback DDL Truncate command Add a table constraint Analyze a Table or Index Drop the selected object from the database Drop all filtered objects for the current object tab from the database Rebuild the selected index Save the selected object to a SQL file Open the selected object in a SQL Editor or Stored Procedure Editor Compile Procedure, Trigger, View, or Java object Compile all Procedures or Views Compile dependent procedures Execute procedure
234
Enable all Triggers or Constraints Disable all Triggers or Constraints Enable current Trigger or Constraint Disable current Trigger or Constraint Create new Sequence or Database Link Add Public Synonym for Table or Sequence
Chapter 9
Schema Browser
235
Right-Click Menus
Object Lists The Right-Click Menu on any of the tabs in the objects panel (the left-hand side of the window) displays a menu to show/hide the object tabs. You can check or uncheck menu items to show or hide the tabs. However, you cannot hide the tables tab. So, if you only want Views and Synonyms, deselect the rest for a cleaner interface. When you exit, TOAD saves your options. The next time you run TOAD, the window will hide the tabs that you unchecked in your previous session.
Right-click on a tab in the objects panel to display a Right-Click Menu that lists all the object tabs, which you can select or deselect. Here, the Triggers and Db links are unchecked in the tab list, so they are not displayed.
236 Data Grids The Data grids on the Tables > Data tab and the Views > Data tab also have a Right-Click Menu.
Data Grids Right-Click Menu The Data Grids Right-Click Menu is similar to the Right-Click Menu that is in the SQL Editor Results Grid. For detailed information on each of these items, refer to the SQL Editor chapter - the Results Grid section, page 102. The Schema Browser data grids menu also contains: Post Changes/Edit. It does not contain Export to Flat File, Find Data, Font, or Size Columns to Data.
Chapter 9
Schema Browser
237
238 If an Object Tab doesnt contain any objects then the Object Tab window will be empty for that tab. If youre not a DBA, youll only see your own objects and objects that youve been granted permission to see. So, if you view another users schema, you only see objects in that schema that the other user has granted you permission to see. DBAs can see everyones objects. The Change Active Session button has a dropdown button next to it. Its dropdown list displays all active sessions. You can click on a session from the list to change the active session. If you want to create another session, click the change active session button which will bring up the Select Session dialog where you can then click the <NEW> button to create the new session.
The Change Active Session drop down list lets you select a different session as your active session. The status panel shows what session youre in. The CNT on the status panel shows how many objects are in the object list for the object tab youve selected.
The status panel for this Table window shows the number of objects in the window is 15, the current session is System, and Commit is ON.
Chapter 9
Schema Browser
239
Refresh All The Refresh All button refreshes the current list. So, if you create a table and you dont see it in your table list, click Refresh All which will requery, and the table name should display in the list, subject to any active table filters.
Refresh Detail The Refresh Detail button, refreshes, or requeries, only the details panel. So, if you dropped a column, you can click on the refresh detail to see the refreshed list.
Clear Filters Clear Filters only affects the two data tabs, because they are the only ones with data filters.
Data Filter On the Tables > Data tab and Views > Data tab, there is a filter button which displays a dialog where you can sort or filter. When the filter funnel is red, its ON. When the filter funnel is gray, its OFF. When there are not filters, the filter is gray, and its OFF.
240 Object Filter The following tabs have object name filtering capability: Tables, Procs, Triggers, Views, Synonyms, and Constraints. Click the filter toolbar button and enter the filter criteria, e.g., starts with A, etc.
When viewing Packages and Procedures, you may see "wrapped" rather than the code of the statement. This means that the procedure was compiled using the Oracle wrap utility and is not stored in readable format.
Chapter 9
Schema Browser
241
242 Enable DROP-ALL Buttons Default - Unchecked Most object list tabs in the Schema Browser have a Drop All button which allows fast dropping of database objects. The Drop-All buttons are never enabled unless you check this option. TOAD will not save this option and will revert to disabled Drop-All buttons. So, checking this option is temporary for the current TOAD session only.
Omit SYS objects from the Procedure Dependencies List Default - Checked If checked, TOAD will omit SYS owned objects from the Procedure Dependencies list, such as standard packages, DBMS_STANDARD, DBMS_UTILITY, etc.
Show Table Stats for Table Details (on the Stats/Size tab) Default Checked If checked, TOAD will show the table stats information. You can also check this ON or OFF via checkboxes on the Stats/Size tab.
Show Column Length Info with Column Data Type Default Checked If checked, columns will show, in the columns tab, in the format "VARCHAR2(20)" including max length, scale and precision (if applicable). If unchecked, length, scale, and precision will display in separate columns in the grid.
Limit Data Grids To X Number of Rows Default Blank (all rows) If a value is entered, SQL results grids on the Tables > Data tab and the Views > Data tab are limited to that number of rows. This does not affect the SQL results grid on the SQL Edit window.
Chapter 9
Schema Browser Automatically Show Filter Dialog for Filtered Lists on Browser Default Unchecked
243
If checked, before the Schema Browser window is opened a Filter Dialog will display for the user to enter filter criteria, then the Schema Browser will open with only those objects matching the filter.
Add View Columns to View Text When Creating Scripts or Showing View SQL Default Checked If checked, a list of columns displays that will result when the view is queried, after the "create or replace view" clause, e.g., "create or replace view view_name (col1, col2, ..., coln) as ..."
Only Show Users That Own Objects in Dropdown Lists Default Unchecked If checked, TOAD will only show the users who own objects. This is an alternative to Oracle User List selection process. For example, if your environment includes only a few schemas that own objects granted to hundreds of schema names for security purposes, then checking this option will list only the few schemas that own objects instead of a long list of all the schemas. So, this filter makes the schema dropdown list more manageable. NOTE: This option affects all windows in TOAD with Schema dropdown lists, e.g. "Table Name Select", "Column Name Select", etc.
Only Show One Browser Per Database Connection Default Unchecked If checked, TOAD will only permit one Schema Browser window to be opened per Oracle connection. This conserves operating system resources, because the Schema Browser is loaded with widgets, buttons, and bitmaps. If the user tries to create another Schema Browser window, and one is already open, TOAD will just switch to the existing Schema Browser window. This option is similar to limiting the number of SQL Edit windows in the SQL Editor option (Only show one SQL Editor per database connection) and Procedure Edit windows in the Procedure Editor options menu.
244 Cache cursors used for Browser queries (faster Browser but uses 12 cursors) Default Checked If checked, TOAD will use cursors when retrieving detail information to display in the details panels to the right of the Schema Browser window. Usually, only the object name changes from query to query. So the use of cursors, where only the bind variable values change, is much faster than forcing Oracle to reparse and re-execute different queries each time.
Show List of Primary Key Columns for tables Default Checked When checked, TOAD will display the list of Primary Key columns, on the Tables/Columns tab, to the right of the Show Comments dropdown list. For some tables with long column names, and/or compound primary keys, this label may not be long enough. TOAD also places a small black triangle next to each column in the columns list that is a Primary Key column.
Auto-Expand Dependencies Trees Default - Unchecked If checked, when dependencies display, they are automatically expanded. If unchecked, each level is queried and displays as the user drills down.
Auto-size list view columns Default Unchecked If checked, TOAD will automatically size the width of the column lists to the width of the text.
Save Data Grid Layouts Default Unchecked When checked, TOAD will automatically save the Data tab grid layouts with respect to column order, columns to exclude, sort, filter, and custom column widths.
Chapter 9
Schema Browser Save Browser Filters Default Checked If checked, TOAD will save the browser filters to disk, in files named SCHEMA.FLT in the \TOAD\TEMPS folder. If you want to reset your Schema Browser filters each time you close and open TOAD, then uncheck this option.
245
Show Tablenames following Triggers names Default Unchecked If checked, corresponding tablenames will display after trigger names on the triggers object list.
246
Objects
The Tables Tab list the tables that are in the selected schema.
Object Scripts TOAD can create DDL Scripts -- Oracle Statements to recreate the object -- for most of the objects displayed on the Schema Browser. The Create Script button, which is the first button on the toolbar for each tab on the left of the Browser, generates a script. The scripts are always copied to the clipboard by default. Note: Table create scripts can be viewed while on the Browser window on the Scripts detail tab for Tables.
Dropping Objects Many objects can be dropped directly from the Schema Browser. Tables, Indexes, Procedures, Functions, Packages, Triggers, Sequences, Views, Synonyms, Constraints, Database Links, and Java objects can be dropped via buttons on the respective tabs on the left of the Browser window.
Chapter 9
Schema Browser
247
The buttons for dropping a single object are enabled whenever an object is selected in the list on the respective tab. The Drop All buttons are not enabled by default. You must manually enable them on the View > Options window. This makes a potentially destructive operation a little more complex. The Drop All setting is NOT saved, and must be reselected each time TOAD is started. Notice the drop a single item scissors icon are cutting a white piece of paper and the Drop All icon has scissors cutting a red piece of paper. This is a visual alert, so that you will not accidentally select Drop All instead of a simple Drop a single object.
TOAD will confirm any DROP operation on the Browser but after you respond <Yes> to the confirmation, NO DROPS CAN BE REVERSED.
Copying From the Browser Any of the Object Names shown in the Object Lists on the left of the Browser can be copied to the clipboard by pressing <CTRL>C for the highlighted object name. Any column of data shown in the detail grids on the right of the Browser can be copied to the clipboard by pressing <CTRL>C for the highlighted grid cell.
248 Note that the detail grids for Table Information behave differently. The grids that display Table Detail Information support multi-row selection and always copy the first column to the clipboard. For example, if you are viewing a grid display of a list of columns for a table, you can <CTRL>-click to select more than one column, and then press <CTRL>C. This will copy your selected columns to the clipboard, with commas in between (a comma-delimited list). Then you can paste the list into a SQL Editor or another application.
Selecting Object Tabs Individual Tabs on the left side of the Browser window can be hidden if there are database objects you do not need to see often. Right-click over the tabs. A popup menu lets you select only the tabs you want to view. The selections are preserved between TOAD sessions. You cannot unselect the Tables tab.
Filters Most of the primary lists of objects on the Browser can be filtered to show a subset of all of the like objects in the schema. For example, you may have hundreds of tables in a schema but only want to see those where the table name begins with "GEO." Filters currently exist for Tables, Constraints, Synonyms, Views, Triggers, and Procedures.
Browser Filters are specific to a schema/owner name. This means you can define one filter for the schema DEMO and a different filter for PRODUCTION and the appropriate filters will be loaded when you view that schema in the Schema Browser. Table Filters allow filtering on table name as well as column name. For example, you can find all tables that have columns with FND_NO anywhere in the column name. The table name may also be searched. Constraints can be searched by constraint name or constraint column name. Synonyms can be filtered by Synonym scope: Owned by schema only, owned by schema plus Public synonyms, exclude SYS and SYSTEM synonyms, etc.
Chapter 9
Schema Browser
249
Note: for performance reasons, TOAD caches the list of tablenames for the current schema once the list has been queried from any window. The browser filter, although primarily intended to filter the Schema Browser window, also affects the table lists throughout TOAD. So, for example, if your filter is set to display only tables that begin with GEO, every table list will display a filtered list until the filter is changed. Also note that the filters not only reduce the amount of data displayed, they also modify the query used to fetch the data. So, not only is the display refreshed faster, the query fetches less rows for faster response from the database. If no filters are defined, the Browser displays the following: Tables that do not get filters Constraints show primary keys only Synonyms show all but exclude those for objects owned by SYS & SYSTEM Views display all Views Triggers display all Triggers Procedures display all Procedures The filters for all Browser objects can be viewed in a single window under the View > Browser Filters menu. Note: Browser filters are not applied when making changes to the View > Browser Filters dialog. To apply the filters, you must click the Filter toolbar button on the desired object tab, e.g., Constraints, to bring up the Browser Filters dialog, where you can select constraint options, click the OK button, and then the browser filters are applied.
250 Object Tabs The Schema Browser Object tabs are broken down into two groups. On the left is the Object Type. On the right are the details panels that fully describe the objects.
OBJECT TYPE
Tables
Columns, Indexes, Constraints, Triggers, Data, Scripts, Grants, Stats/Size, Referential, and Used By Columns, Position, Length, Table Name and Table Owner Arguments, Dependencies (Uses), Dependencies (Used By), Errors, Grants Columns, Tables, Table Owner, Usage, and Trigger Text Starts With, Max Value, Increment by, Cycle, etc. View Columns, Data, Grants, Dependencies, View Text Object Owner/Name/Type, and if Synonym points to a table, view or PL/SQL code, the appropriate describe window tabs display Constraint Columns/Text, Referential Owner Host, Username, Created Date (no GUI is defined for Java objects at this time)
Indexes
Procs
Triggers
Chapter 9
Schema Browser
251
Tables
This section discusses the Tables Tab. Remember, some of these buttons are also found on other tabs.
Objects Panel
Create Script Create Script button
252 When the Table Script Creation window displays, the Options Tab is selected by default. When you select the Execute button, a script is created for your table that you can then paste into the SQL Editor or elsewhere. For creating multiple table scripts, see the Database > Export > Table Scripts menu item.
Include indexes in script If checked, TOAD will include CREATE statements for each index on the table.
CREATE INDEX JUNK ON ACCT_BALANCE(OPBAL_CR);
Include tablespace info If checked, TOAD will place TABLESPACE and STORAGE clauses after the CREATE TABLE and CREATE INDEX commands.
TABLESPACE USER_DATA PCTFREE 10 INITRANS 1 STORAGE ( INITIAL 10K NEXT 10K PCTINCREASE 50 MINEXTENTS 1 MAXEXTENTS 121 ) NOCACHE; PCTUSED 40 MAXTRANS 255
Chapter 9
Schema Browser
253
Separate Check constraints If checked, TOAD will place check constraints after the CREATE TABLE command. If unchecked, it will place the check constraints inside the CREATE TABLE command.
CONSTRAINT ACCT_BAL_CHECK_CONSTRAINT CHECK (compcode >= 'AA' and compcode <= 'ZZ')
Separate Unique Constraints If checked, TOAD will place unique constraints after the CREATE TABLE command. If unchecked, it will place the unique constraints inside the CREATE TABLE command.
ALTER TABLE UNIQUE_TEST ADD UNIQUE (NAME); CONSTRAINT UNIQUE_TEST_UK
Include Comments If checked, TOAD will include table and column comments.
COMMENT ON TABLE ACCT_BALANCE IS 'This is a test.'; COMMENT ON COLUMN ACCT_BALANCE.COMPCODE IS 'Only compcodes AA-ZZ are valid.';
Include Synonyms If checked, TOAD will include a PUBLIC synonym to the table.
CREATE PUBLIC SYNONYM ACCT_BALANCE FOR ACCT_BALANCE;
Include Foreign Key constraints If checked, TOAD will include the foreign key constraint clauses for the table.
254
ALTER TABLE DIS ADD FOREIGN KEY (PLANT_ID) REFERENCES TSMITH.PLANTS (PLANT_ID) DISABLE;
Foreign Keys at end of script If checked, TOAD will place the foreign keys at the end of the script. If unchecked, TOAD will place the foreign key clauses inside the CREATE TABLE statement.
Include Enable/Disable for Ref constraints from other tables If checked, TOAD will disable and enable referential constraints from other tables to the table for which you are creating a script.
Include granted privileges If checked, GRANT statements will be included at the end of the script.
GRANT SELECT ON PLANTS TO DEMO;
Include Triggers If checked, TOAD will include the trigger code for the table at the end of the script.
CREATE OR REPLACE TRIGGER SCHAPMAN.TABLE_TO_VALIDATE_IU BEFORE INSERT OR UPDATE ON table_to_validate FOR EACH ROW BEGIN /* Call the proc to validate the incoming value. */ check_validated_value(:new.value_to_validate); END TABLE_TO_VALIDATE_IU;
Chapter 9
Schema Browser Include SQL * Plus / chars. If checked, TOAD will include "/" characters after every command in the script.
DROP TABLE ... / CREATE TABLE ... /
255
Primary Key with Indexes Script If checked, TOAD will place the Table Primary Key with the indexes portion of the script. NOTE: This option is mutually exclusive with the Primary Key with Table Create radio button.
ALTER TABLE ACCT_BALANCE ADD CONSTRAINT ACCT_BALANCE_PK PRIMARY KEY (COMPCODE, FISCALYEAR, ACCTCODE, OFFCODE) USING INDEX TABLESPACE USERS PCTFREE 10 STORAGE(INITIAL 10240 NEXT 10240 PCTINCREASE 50 ) ;
Primary Key with Table Create If checked, TOAD will place the Table Primary Key inside the CREATE TABLE statement. NOTE: This option is mutually exclusive with the Primary Key with Indexes Script radio option button.
RUN_CR_13 NUMBER(13,2),
CONSTRAINT ACCT_BALANCE_PK PRIMARY KEY ( COMPCODE, FISCALYEAR, ACCTCODE, OFFCODE ) USING INDEX PCTFREE 10 STORAGE(INITIAL 10240 NEXT 10240 PCTINCREASE 50 ) TABLESPACE USERS)
256 No trailing semicolons If checked, TOAD will not place semicolons at the end of each statement. NOTE: This option is mutually exclusive with the Add trailing semicolons radio button.
Add trailing semicolons If checked, TOAD will place semicolons at the end of each statement. NOTE: This option is mutually exclusive with the No trailing semicolons radio option button.
DROP TABLE ACCT_BALANCE CASCADE CONSTRAINTS ;
Output Tab To Clipboard If checked, TOAD will output the table script to the Windows Clipboard. To File If checked, TOAD will output the table script to a single file, as selected in the Filename textbox.
Filename textbox Enter a drive, path, and filename, or click the drill down (ellipses) button for the standard file picker dialog.
Click the Execute button to generate the table script, or click the Cancel button to close the Table Script Creation dialog. The options selected in the Table Script Creation dialog are saved and restored the next time you create a table script.
Chapter 9
Schema Browser
257
Export Data The Export Data function creates INSERT INTO SQL statements for the data in the selected table. The Export Data button displays the Data Export window for whatever table is selected from the left panel of the Table Tab.
Here, the User Profile object was selected, the Export Data button was clicked, and this was the resulting Data Export window. Columns Tab You can check/uncheck columns you wish to include/exclude. TOAD checks all the columns by default.
258 Exclude Null Columns If checked, TOAD will exclude null columns from the columns clause and the values clause of the INSERT INTO SQL statement. E.g.,
INSERT INTO Foo ( ID ) VALUES (5); INSERT INTO Foo ( ID, NULL_COL_TEST2 ) VALUES (6, 2); INSERT INTO Foo ( ID, NULL_COL_TEST ) VALUES (7, 1); INSERT INTO Foo ( ID ) VALUES (8); INSERT INTO Foo ( ID ) VALUES (9); INSERT INTO Foo ( ID ) VALUES (9);
Exclude Primary Key Columns If checked, your primary key columns will be excluded. If you do not have any primary key columns, this choice will not be enabled.
Select All /Unselect All The Select All and Unselect All buttons lets you quickly Select or Unselect all the columns. You can then selectively check/uncheck the columns you want to include/exclude.
Chapter 9
259
Where... clause The Where clause is optional. You do not have to include a where clause. If you include a Where clause you must include the word Where in your statement. Example:
WHERE INVENTORY_NUMBER = 943
Destination Default To File The Destination radio buttons let you choose between To Clipboard or To File.
Filename The filename area has a drill down button where you can drill down to the desired file. You must supply a file name.
Include Schema/Owner Name in Insert Statements When this radio button is selected, the Schema or Owner Name will be included in insert statements. E.g.,
INSERT INTO Schema.Foo ( ID ) VALUES (5);
260
Table Privileges
The Table privileges button activates the Privileges window. Use this window to view or modify the privileges of the selected table, view, procedure, or sequence to other user schema accounts or roles. The Privileges window is discussed in more detail in the Grants Section of this Tables Tab Section page 278.
Table Filter The Table Filter button displays the Browser Filters window for the Tables.
The Browser Filters button can be found on the tabs for Tables, Procedures, Triggers, Views, Synonyms, and Constraints. All the Browser Filter windows have a similar interface.
Here, all tables in the SCOTT schema will be filtered out except those with Tablenames that begin with EMP.
Chapter 9
Schema Browser
261
Browser filters are helpful for schemas that contain a lot of objects the fewer objects that TOAD needs to load, the faster it will execute. For example, you can narrow the focus to only tables whose names begin with EMP and temporarily ignore all other objects in the schema.
Dropdown filter lists include the following choices: Starts with Includes Ends with Not like
After you set your filters, select OK and the browser will display the resulting objects. To view all the objects again, simply select the filter button, Clear the filters by selecting Clear where you have filters, and then select OK.
The filter is stored in a file named SCHEMA.FLT in the TOAD\TEMPS folder, where SCHEMA is the schema name. Do NOT attempt to edit this file! To set up a default filter, see View > Browser Filters, then click the Show Default Filter button. Set up your default filters and press OK to close the window. These filters will be set up by default each time the Schema Browser window is opened. You can also use this dialog to set up the default filter, which is in force for every new schema. You can set defaults for Tables, Constraints, Synonyms, Views, Triggers, and Procedures, such as starts with, contains or ends with a keyword. If you select multiple filters, e.g., table name and tablespace name, then they are joined together with an AND statement in the SQL as opposed to an OR statement in SQL. Not Like sets up the tablename query like this: [not like KEYWORD%].
262
Add Column
Click the Add Column button to display the Column Definition window. This dialog lets you add a column to the selected table. You must enter the Column Name, the Type, and the Size. The Nullable radio button is selected by default. If you want to see the resulting SQL script of your command, select the SQL tab.
Chapter 9
Schema Browser
263
To Add a Column
1 2 Enter the column name, data type, and other appropriate information. Click the Execute button to add the column.
Character Default Values have to be wrapped within single quotes, in order to make a valid "ALTER TABLE..." statement. Additional columns are always appended to the end of the table definition. You cannot insert columns. The Database > Rebuild Table function lets you remove columns or rename columns in a table. The Oracle 8i feature of the "ALTER TABLE" command lets you DROP individual columns.
Truncate Table Lets you truncate a table (delete all the data but maintain the table structure) and either reuse the storage or drop it. The following dialog will display when you select the button.
Once you click the Execute button you cant rollback or undo your choice.
264
Create Constraint The Create Constraint button activates the Create Constraint window.
Use this dialog to create additional table constraints. You can also get to this dialog via the Create > Constraint menu item. You can create: Primary Key constraints Check constraints Unique constraints Foreign Key constraints
Chapter 9
Schema Browser
265
If you want to move records that do not meet the new constraint criteria into another table, click the Exceptions tab, pick a schema, existing table, or enter a new table name, and click the Create a New Exceptions Table button. 7 8 You can review the SQL prior to execution by clicking the SQL tab. Click the Execute button to create the Primary Key constraint.
If a Primary Key constraint already exists for the selected table, then the Primary Key radio button option will be disabled.
266
If you want to dump records that do not meet the new constraint criteria into another table, click the Exceptions tab, pick a schema and existing table, or enter a new table name. 7 8 You can review the SQL prior to execution by clicking the SQL tab. Click the Execute button to run the SQL and add the Unique Key constraint.
Chapter 9
Schema Browser
267
10 Click the Execute button to run the SQL and add the Foreign Key constraint.
268
Analyze Table Click the Analyze Table button to display the Analyze Tables window. Use this dialog to analyze the selected table from the tables object list. This collects statistics so that COST based query optimization can be used. So, the optimizer can run better queries. You can either estimate statistics (faster than compute), compute statistics, or delete current statistics.
To analyze all tables in the current schema or other selected schema, go to the Database > Analyze All Tables menu item. This displays the same dialog as above, but with the Schema dropdown list enabled so that you can select which schema tables to analyze all at once.
Chapter 9
Schema Browser
269
Add Public Synonym to Table Click the Add Public Synonym for this Table button and a confirmation window will appear asking if you want create a public synonym for the table. The Sequences tab also contains an Add Public Synonym toolbar button. Click Yes to create the synonym or No to Cancel.
Drop Table The Drop Table button lets you drop the selected table directly from the Schema Browser. A confirmation window will ask you if you are sure you want to drop the table. Once you select Yes the table is dropped and cannot be retrieved.
270
Indexes The Indexes tab lists the indexes for the selected table. The list includes the Index Name, whether or not the index is Unique, the Column(s), and the Position. It also lists the Parameters and Values for each index. Indexes Details Panel Buttons
Create script for selected index Create new index Rebuild index Analyze index Drop index Drop all indexes, not enabled by default
Chapter 9
271
The Constraints tab lists any constraints for the selected table. It lists the Constraint Name, the Constraint Type, the corresponding Column, and the Status. For foreign key referential integrity constraints, the panel at the bottom lists the owner, table, and column names that the foreign key constraint is pointing to.
Enable ALL Constraints for this table Disable ALL Constraints for this table Enable the current Constraint Disable the current Constraint Drop ALL Constraints, not enabled by default Drop Constraint
272 Triggers The Triggers tab lists any triggers for the selected table. It includes the Type, Status, whether or not its Enabled, the Trigger Event, the Table Owner, and the When Clause. The editor at the bottom of the details panel lists the source code for the selected trigger.
Enable ALL Triggers for this table Disable ALL Triggers for this table Enable the current Trigger Disable the current Trigger Drop ALL Triggers, not enabled by default Drop Trigger Open Procedure Edit window for selected trigger
Chapter 9
273
The Data tab displays the selected table, with data, in grid format. This is similar to the SQL Results Grid on the SQL Edit window with just a few differences. The data in this grid is directly editable, because the query to populate the grid includes the ROWID column. The right mouse menus are slightly different. Grid configurations on this data tab are saved and restored from the TOAD\TEMPS folder structure. You can easily rearrange columns by clicking and dragging on the column titles. Double-click any data item to bring up a memo editor for that item. Single record view button Click on the book in the top left corner of the table to show single record views of the selected row.
Details Panel
Commit the grid edits to the database Filter the data grid, set sort criteria The Filter Data toolbar button opens the Table Sort dialog, where you can select the columns to sort and/or filter.
Sort Tab To Sort, select the column(s) you want to sort and click on the pointing hand. Notice you can sort in ascending or descending order. You can also move items up and down the list. If you want to clear the sort column(s) for this table, click the Clear Sort button. If you want to clear the entire filter for this table, click the Clear Filter button on the Table Sort dialog.
Filter Tab The filter tab provides dropdowns with additional filter choices. On the filter tab, select the Column, Operator, and Value to filter upon. You can further edit the resulting SQL right in the memo editor widget. When finished, click OK and the data in the grid will be sorted and/or filtered as specified. This sort and filter criteria are saved in temporary files in the TOAD\TEMPS folder hierarchy. If a table filter is in effect, the funnel icon on the Data tab will be red. The Clear Filters toolbar button clears the filter criteria and the sort criteria.
Chapter 9
275
The forward and backward buttons let you quickly move around from row to row in the recordset. The First Record button takes you to the top of the grid (the first record in the recordset). The Next Record button takes you to the next record in the recordset, and so on.
Advance to the first record Advance to the previous record Advance to the next record Advance to the last record
Insert record (blank row) over current row Delete record Post edit Cancel edit Refresh data
276 Scripts The scripts tab displays the SQL script for the table youve selected.
The scripts tab also includes several buttons and options. Copy Text to Clipboard The Copy Text to Clipboard button (or <CTRL> C) copies selected text from the SQL script to the clipboard, so that you can paste it into another application or text editor. Select All Text The Select All Text button selects all the text in the SQL script. You can then use the Copy Text to Clipboard button to copy the whole script. Copy Script to SQL Edit window The Copy Script to a SQL Edit window button opens a SQL Edit window and pastes a copy of the script into the SQL Edit window. The options you can check or uncheck are: FKeys Indexes Synonym Grants Storage Triggers Comments When you change an option by either checking or unchecking it, the checkbox text turns red. At the same time, the GO button turns red. This indicates that a change has taken place, but is not yet reflected in the SQL script. Once you Click GO, the script refreshes, implementing the options youve changed. The option text returns to its original black color and GO returns to its original gray color.
Chapter 9
Schema Browser
277
Refresh the Table Script The GO button refreshes the script, updating any changes. If youve changed options, the GO button turns red until you click it, refreshing the screen. Your new script is displayed, and the GO button return to its original gray color.
278 Grants The Grants Tab lets you view existing table grants or assign or replace existing privileges.
Privileges The Privileges button opens the Privileges window which lists the users.
The Privileges window, which is about to grant the UPDATE privilege on SCOTT's DEPT table to user DEMO.
Chapter 9
Schema Browser
279
The dropdown button lists all the tables in your current schema. The selected table name is displayed automatically. Radio buttons let you choose between adding to existing privileges or replacing existing privileges. The user list, which is the list in the lower part of the window, lists all your schemas alphabetically and also lists the keyword PUBLIC at the bottom of the list. If any roles are created it will also include the roles separated by the title "Roles". If you cannot see any roles, have your DBA Grant select on dba_roles to schema. The user list is multi-select.
280 Stats/Size The Stats/Size tab displays numerous statistics and size information about the selected table. The two display options Show Stats Show Size/Extents are checked by default. The Stats, such as TABLESPACE NAME and NUM ROWS are displayed in the upper window of the details panel and the Size/Extents information such as SIZE IN BYTES and INITIAL EXTENTS are displayed in the lower window of the details panel. The panel window columns are click and drag resizable, and a horizontal splitter is between them.
Chapter 9
281
The Referential tab displays a hierarchy of tables and how the selected table is referenced by other tables and references other tables. This display is based on the existing foreign key constraints from table to table.
Remember, + on the keyboard expands one branch of the hierarchy and <CTRL><SPACE> expands the whole tree. Pressing the asterisk key, "*", will fully expand the current node. On each node of the hierarchy, there is a chain symbol for standard referential, and a scissors symbol if the reference is Cascade on Delete.
Circular references, such as EMPLOYEE.MANAGER_ID referencing EMPLOYEE.EMPLOYEE_ID are captured, so you cannot drill down in the hierarchy endlessly (for example, emp_id is referenced by manager_id, which references emp_id, which references manager_id, and so on). You can select an item in the list, press <F4> and get a popup window describing the object in detail.
282 Used by The Used By tab shows the objects that reference the selected table such as views, triggers, functions, procedures, and packages.
This Used By tab shows that the CUSTOMER table is used by the Demo.Sales view.
Chapter 9
Schema Browser
283
Indexes
Objects panel
In the list of indexes, "101" icons are BITMAP indexes, and "Yellow Square + Red Triangle + Blue Circle" icons indicate UNIQUE indexes (vs. non unique).
Create Script This copies the Create Index script of the selected index to the clipboard.
284 Indexes need to be periodically rebuilt in order to improve query performance. Over time, records are added to the end of tables and indexes, and other records are deleted from the middle of tables and indexes. When you read the tables and indexes, the disk device has to traverse the chain up and back until your record is found. Rebuilding an index reorganizes the chain sequentially, substantially improving query performance.
The Rebuild Index window lets you change storage parameters, select a Parallel option, and select a Recoverable option. You can click the SQL tab to see the resulting SQL syntax.
Chapter 9
Schema Browser
285
Analyze Index This collects statistics on the selected index so that COST based query optimization can be used. So, the optimizer can run better queries. A confirmation popup window will appear, select Yes, and the selected index will be analyzed.
Drop All Indexes This is disabled by default. This will drop all indexes in the list. This will not drop indexes that have been filtered out of the list. Refer to the "Dropping Objects" section of this chapter (page 246) for more information about Drop All buttons.
286
Details Panel
The details panel displays information about the selected index including the column, table name, table owner, parameters, and values. The horizontal splitter between the two panels can be moved up or down.
Chapter 9
Schema Browser
287
Procedures
In the list of PL/SQL Procedures, Functions, and Packages, a "Pink X" is for a Package that contains one or more invalid (Red X) functions or procedures.
288
Objects Panel
Save to File This button lets you save the selected procedure to a file on your hard drive.
Proc Edit The Proc Edit button is enabled after you select a procedure. It opens a Procedure Edit window for the Procedure that youve selected in the objects panel.
Compile The Compile button compiles the selected procedure, function, or package.
Compile All The Compile All button compiles all procedures, functions, packages, and triggers for the current schema.
Procs Filter The Procs Filter button displays a Browser Filter dialog for procedures. Refer to the Filters discussion (page 248) for more about Filters.
Chapter 9
Schema Browser
289
Compile Dependencies The Compile Dependencies button will compile dependencies for the selected procedure. For example, if procedure A calls your procedure B, select procedure B, click the Compile Dependencies button and TOAD will recompile procedure A. A dialog asks you if you want to compile the dependencies on the selected procedure. Select Yes or No.
Execute Procedure The Execute Procedure button executes the selected procedure, bringing up the Execute Procedure/Set Parameters window.
Privileges Use this window to view or modify the privileges of the selected procedure to other user schema accounts or roles. The Privileges window is discussed in more detail in the Grants Section of this Tables Tab Section (page 278).
Drop All Procedures This drops all the procedures in the list. This will not drop procedures that have been filtered out of the list. The button is disabled by default. Refer to the "Dropping Objects" section (page 246) for more about Drop All.
290
Chapter 9
Schema Browser
291
Details Panel
The details panel includes tabs for Arguments, Deps (Uses), Deps (Used by), Errors, and Grants. The lower part of the details panel displays the source code for the selected procedure object.
292 Arguments The Arguments tab displays information about the procedure arguments (if any) in the upper part of the panel.
Deps (Uses) and Deps (Used By) The Dependencies tabs (Uses and Used By) displays the dependencies in the upper part of the panel. If there is a hierarchy of dependencies, the expand button will show the hierarchy. You can select an item in the Deps list, press <F4> and get a popup window describing the object in detail.
Errors The Errors tab displays the last errors that occurred when you tried to compile the selected procedure. If you click on an error, its location is highlighted in the script that is displayed in the lower part of the details panel.
Grants The Grants tab lists the Grants and shows the associated Privileges, whether or not there is a "With Grant Option", and the Grantor. The tab contains two buttons.
Revoke All This revokes all privileges that are in the list.
Chapter 9
Schema Browser
293
Triggers
In the Triggers list, the icons to the left of the items represent the following: Red Circle with a slash indicates that the trigger is DISABLED Red X indicates that the trigger is INVALID and needs recompiling White page indicates that the trigger is VALID and ENABLED
Objects Panel
Save to File This button lets you save the selected trigger to a file on your hard drive. Proc Edit (Trigger to Proc Editor) This button takes the selected Trigger to the Procedure Editor ready for editing.
Compile the Selected Trigger This button compiles the trigger that is selected in the objects panel.
294
Disable All Triggers This button disables all triggers that are in the current schema.
Enable all Triggers This button enables all triggers in the current schema.
Disable the Current Trigger This button disables the trigger that is currently selected.
Enable the current Trigger This button enables the currently selected trigger.
Trigger Filter This button activates the Browser Filters for Triggers window.
Drop all Triggers This button drops all triggers in the list. This is a Drop All button and has to be manually enabled on the Options window. Refer to the "Dropping Objects" section, page 246, for more information about Drop All.
Chapter 9
Schema Browser
295
Details Panel
The details panel displays information about the selected trigger in the upper section: column, table, table owner, and usage. The lower section displays the SQL script for the selected trigger. The horizontal dividing bar, also referred to as a splitter, is click and drag moveable. The trigger text is selectable via <CTRL>A, and can be copied to the clipboard via <CTRL>C.
296
Sequences
Sequences are basically counters that Oracle maintains. They have designated starting and stopping points.
The Sequences Tab displays information about the selected sequence in the details panel. You can check the cycle checkbox if you want the sequence cycled.
Chapter 9
Schema Browser
297
Objects Panel
Create Script This creates the Create Sequence script and copies it to a clipboard so that it can be pasted into a SQL Editor or another application.
Create New Sequence This button opens the Create Sequence window where you can create a new sequence.
Sequence Privileges Sequence Privileges opens the privileges window for the selected sequence.
Add Public Synonym for this Sequence This creates a public synonym for the selected sequence.
Drop all Sequences, not enabled by default When enabled, this drops all sequences in the current schema. Refer to the "Dropping Objects" section, page 246, for more information about Drop All.
298
Details Panel
The Modify button displays the Sequence Modify window where you can modify the start value, the max value, the increment value, whether or not to cycle, and the number to cache settings. The Sequence Recreate button displays a similar window, however Recreate will first Drop the sequence, then Create it.
A sequence can either be ascending or descending. Oracle keeps sequences in memory until it reaches its cache value (the number to cache). Oracle preallocates the space and keeps the sequence in memory before caching. This lets TOAD and Oracle run faster. If you are caching sequences, and the database crashes, you lose from whatever the sequence started with to wherever the sequence stopped. This might or might not matter to you depending on why you are using the sequence. For example, if the sequence is for printed invoices where every number on the invoice is printed on a sheet, then it is important for you to have every number in the sequence, and you dont want to cache anything. An example of a situation where you might want to cache sequences, so that TOAD can run faster, is if you are using the sequences to generate unique id numbers for primary keys, but you dont need all the sequences.
Chapter 9
Schema Browser
299
Views
The Views tab displays details for the selected View item.
300
Objects Panel
Create Script Generates the create View script syntax and places it on the clipboard so that it can pasted into the SQL Editor or another application.
Show view in a SQL Editor This opens the SQL Editor and pulls in the SQL Script of the selected View.
Compile All This button compiles all the Views in the current schema.
View privileges This button displays the Privileges window for the selected View.
View Filter This button displays the Filter window for the selected View.
Drop all Views This button, when enabled, drops all Views in the current schema. Refer to the "Dropping Objects" section of this chapter (page 246) for more information about Drop All buttons.
Chapter 9
301
302
Details Panel
View The View Tab includes a dropdown where you can select column comments, view comments, or no comments. Edit the comments, then click on a different column or view to save them. An optional checkbox lets you either display or not display which columns of the view are updateable. This requires an extra query step, so it is an option. The upper portion of the panel populates information about the selected view: column, data type, null (Y/N), and Updateable (if the checkbox is checked). The lower part of the panel displays the SQL script for the selected view. The horizontal dividing bar is click and drag moveable. The view text is selectable via <CTRL>A and can be copied to the clipboard via <CTRL>C.
Chapter 9
303
The Data tab displays the data for the selected view, in table format. It includes a filter button, which pulls up the Table Sort window containing the Sort and Filter tabs. It has the single record view button, which pulls up the Single Record View window. It also includes the standard TOAD table navigation buttons for quick navigation through the rows (or records).
Advance to the first record Advance to the previous record Advance to the next record Advance to the last record The table navigation buttons let you quickly navigate through records.
The single record view button activates the Single Record View window which also allows for table navigation.
304
The Filter button pulls up the Table Sort window. For more information on the Table Sort dialog, see page 272.
Chapter 9
305
The Grants tab displays Grant information for the selected view, granted to, type of privilege, whether or not there is a with grant option, and the grantor. It also includes buttons for revoking all privileges or for revoking just the selected privilege.
306 Deps (Uses) and Deps (Used By) The Dependencies tabs (Uses and Used By) displays the dependencies in the upper part of the panel. If there is a hierarchy of dependencies, the expand button will show the hierarchy. You can select an item in the Deps list, press <F4> and get a popup window describing the object in detail.
Chapter 9
Schema Browser
307
Synonyms
The
You can create synonyms for any object. Synonyms are useful for things like security and ease of maintenance. Remember, synonyms basically point to the original object.
Objects Panel
Create Script This puts a Create Synonym command for your script onto the clipboard so that you can paste it into the SQL Editor or another application.
Filters Filters let you filter out different types of synonyms. Because the SYS/SYSTEM schemas contain a lot of synonyms, users like to filter them out for easier navigation. So, the Show Public synonyms except those for objects owned by SYS/SYSTEM is selected by default.
308
In addition to the basic filter dropdown choices, the window also has radio buttons where you can choose the type of synonyms you want displayed. The checkboxes let you show synonyms for tables, views, and/or stored procedures. A dropdown box is provided for Object Owner choices.
Chapter 9
Schema Browser
309
Details Panel
When you click on a synonym from the object list, the details of the object the synonym is pointing to displays in the details panel. So, you can see details about synonyms pointing to tables, views, and stored procedures. Unknown Objects are listed as UNKNOWN.
The details panel displays details of the object the synonym is pointing to.
The details panel will also display tabs and details associated with the object. For example, if the object is a View the details panel will contain the same tabs the Object View Tab displays in the details panel (View, Data, Grants, Deps) and the same associated details, options, and dialogs.
310
Constraints
The Constraints tab displays the constraints in the objects panel and details about the constraints including the type of constraint and the columns involved, in the details panel.
Objects Panel
Enable all constraints This enables all constraints that are in the current schema.
Disable all constraints This disables all constraints that are in the current schema.
Chapter 9
Schema Browser
311
Constraints filter This pulls up a Browser Filter dialog window for constraints.
312 When you disable constraints (either disable current or all), if any of the constraints you have selected to disable have dependencies, an Oracle error message will display stating that you cannot disable constraints that have dependencies. If the constraint was disabled, a red X will also appear next to your constraint in the objects list. If you then enable the constraint, the red X will disappear.
Chapter 9
Schema Browser
313
Details Panel
The details panel provides information about the selected constraint including its type, status, table and owner.
314
Db Links
The Db Links lists all possible links from the database you are using. Links can be public (used by all schemas) or private (used only by the schema that created it).
Db Links are used in queries at the end of each table or view name.
Objects Panel
Create new database link
This displays the Create Database Link window where you can fill in the information to create a database link. The dropdown menu lets you select from the list of databases to connect to. After the information boxes are filled in, select the Execute button to create the database link.
Chapter 9
Schema Browser
315
Details Panel
The details panel lists the host, user name, and the date and time the link was created, for the selected Db link from the object list.
316
JAVA
TOAD includes a JAVA tab for Oracle 8i databases. The JAVA tab does not have a details panel. The two buttons it has in its object list are Compile and Drop.
Chapter 9
Schema Browser
317
In this example, the following selection is copied to the clipboard CUSTOMER_ID, CITY, ZIP_CODE,
318
Chapter 9
Schema Browser
319
To filter out schemas that do not contain objects from the schema dropdown list
If you have a database where only a few schemas contain objects, e.g., tables, views, etc., and all other schemas are used as end-user logins, then go to the View > Options > Schema Browser node, and check Only show users that own objects in dropdown lists. In this example the OPS$ accounts (and other schemas that do not own any objects) are filtered out in the list on the right.
320
To filter out objects that you do not want to see from the object lists
Use the filter buttons on the various object tabs to include or exclude certain objects. The filters make object lists more manageable. Filters are discussed in detail in the Tables section of this chapter, page 260.
Refer to the Right-Click Menus section of this chapter, page 235, for more information about the Right-Click Menu.
The windows covered in the previous chapters of this manual are: Server Login, SQL Editor, Procedure Editor, PL/SQL Debugger, and Schema Browser. This section will highlight some selected options and features found in other TOAD windows.
322
SQL Modeler
The SQL Modeler dialog lets you quickly create the framework of a Select, Insert, Update, or Delete statement. You can select Tables, Views, or Synonyms, join columns, select columns, and create the desired type of statement.
Two ways to invoke the SQL Modeler Click the Database > SQL Modeler menu item. Click the Open a new SQL Modeler button that is on the main toolbar.
Table Model Area The Table Model Area lets you graphically lay out a query. Simply double-click (or drag and drop) an item from the Table Selector list and its associated table object appears in the Table Model Area. To maximize the model viewing area, press F2 or right-click in the model and select Full Screen Model from the Right-Click Menu.
Table Selector Area This is where the tables are listed for the selected schema. A dropdown list lets you select a schema.
Generated SQL Query After you lay out your query, click the Generated Query tab and the resulting query will display. Other tabs in the window are Criteria, Query Results, and Explain Plan.
Chapter 10
323
The alias comes from ALIASES.TXT. See page 67 for details about setting up table aliases. If the selected table does not have an entry in ALIASES.TXT, then the first three characters of the table name are used to generate the alias, which might not always be unique. For example, the aliases for ALL_OBJECTS and ALL_TABLES are both going to be ALL. You can edit the alias as desired to make it unique, or change it to something more meaningful. If the table name is eight characters or less in length, the entire table name is used as the table alias.
324
Table Selector List - Here, the Department table is selected from the TOAD schema.
The selected tables (Department and Employee) display in the table model area and the Generated Query displays the resulting SQL script.
Chapter 10
Other TOAD Options and Features With the SQL Modeler you can: Drag and Drop (or double-click) Tables, Views, or Synonyms from the Table Selector to the modeling area. Drag and Drop columns from one table to another to create joins between the tables. Double-click a column to select or deselect it. Save the model to disk.
325
Click the Generated Query tab to view the generated SQL query, and click the SQL toolbar button to copy the query to the SQL Edit window.
Create New Model Open Model from Save Model to Disk As... Save to Disk Edit Current Model Info Add Calculated Fields Generate a Select Statement has dropdown to create different types of queries Execute SQL Statement Show Explain Plan View SQL in SQL Edit Window Hide Table List
Chapter 10
327
This is the area to visually join or manipulate the Tables, Views, or Synonyms. Drag the table header and drop it to improve the readability of the model. You can establish your own joins by dragging and dropping a column from one table to another table column. Once the line is drawn, you can double-click the line to adjust its properties such as Inner Join vs. Outer Join, or Join Test, e.g., equal (=), less then (<), greater then (>), etc. If no table columns are selected, then all columns will be included in the query. If you want only certain columns, double-click each desired column. A plus symbol (+) will be displayed to the left of each selected column. The selected column information will appear in the Criteria grid below.
Model Area Right-Click Menu Right-clicking over the model displays this popup menu:
Copy Model Image to Clipboard Copies a bitmap image of the model to the Windows Clipboard
Tables|Visibility Displays a Tables Visibility window with checkboxes next to a list of your tables that are in the model. You can check/uncheck the individual tables to show/hide them.
328
Show|Join Text Displays the column names that comprise the joins
Show|Zoom on Table Pulls up a Choose a table to focus menu. Double-click on the table you wish to focus on, and the model scrolls until the table comes into center view.
Show|Adjust Model Origin Adjusts the upper left object to the upper left of the window
Show|Virtual Space Size Brings up a Model Virtual Space dialog that displays the horizontal and vertical model space, which you can alter.
Show|Primary Key Shows or hides the Table Primary Keys as "(PK)" next to each PK col
Show|Show Field Type Shows or hides the data type of each table column
SQL|Distinct Mode Adds "DISTINCT" to the query to return only unique rows
SQL|Global Where Adds a WHERE clause to the query in addition to the column conditions from the Criteria tab
Chapter 10
329
Adds a HAVING clause to the query in addition to the column conditions from the Criteria tab
SQL|Query Variables Displays the Variables and Constants window where you can add and edit variables
Auto Join All Automatically joins all tables based on existing DDL Foreign Key Constraints
Full Screen Model Temporarily hides the Table Select list and Results tab
Right-Click Table Object Menu Right-clicking over each Table object in the model displays this popup menu:
330 Show Schema Name in SQL Shows or Hides the schema name before each table in the generated query
Auto Join Automatically joins this table to others based on existing DDL Foreign Key Constraints
Remove Table Permanently removes this table from the model. See Tables/Visibility (above) to temporarily remove a table from the model.
Invert Selection Selects columns that were unselected and vice versa
Visual Properties Brings up the Visual Object Properties dialog to adjust the table visual properties such as font, color, and alignment
Chapter 10
331
Temporarily hides this Table from the model. To unhide the table, right-click over empty model space and select the Tables > Visibility menu item.
332 Results Grid The Results Grid contains four tabs: Criteria, Generated Query, Query Results, and Explain Plan.
Criteria tab
If individual columns are selected, they will be displayed in the Criteria grid. Here, the Manager (MGR) and Salary (SAL) columns were selected from the Employee (EMP) table. So, the + symbol appears at the left of MGR and SAL and information on the selected columns displays in the Criteria grid.
You can edit many of the column properties in the Criteria grid. "Table" and "Schema" are not editable here. Double-clicking on the following Criteria columns has the following effects. Double-click on: Sort to select this column as Ascending sort, Descending sort, or no sort.
Chapter 10
333
Condition to bring up the Input the WHERE Definition dialog, where you can set a column equal to a constant value or another column value. To remove the WHERE definition, bring up the dialog and click the Clear button. Or to enter another WHERE criteria, which will be OR'd together with the above WHERE criteria. If you want to AND multiple column criteria together, then go to the expert mode from the Input the WHERE Definition dialog. Aggregate Function to select an aggregate column function, such as Average, Count, Max, Min, or Sum. Field Name to enter a different logical column name. Visible to toggle whether or not this column is returned in the column list (Show or Not Show). Group to select this as a GROUP BY column. A number within parentheses indicates the order of the columns in the GROUP BY clause. Group Condition to bring up the "Input the GROUP BY Definition" window to enter a GROUP BY condition.
If you want to change the table alias, right-click over the table in the model and select the Set Alias menu item. To rearrange the order of the columns, click the column headers, then drag and drop them left or right.
334
Right-clicking over the Criteria grid will display this popup menu:
Suppress Current Column Removes this column from the query, which also removes the plus + from the column in the model
Best Fit (All Columns) Sets the column width of the Criteria grid to show all text
Default Width (All Columns) Sets the column width of the Criteria grid to the default width
Copy Query Grid Image to Clipboard Copies the Criteria grid to the clipboard
Chapter 10
335
You can copy the query to the clipboard by selecting it and pressing <CTRL>C or right-click and selecting Copy from the popup menu. You can also copy the query directly to the SQL Edit window by clicking the SQL button in the SQL Modeler toolbar. You cannot directly edit the SQL on the Generated Query tab dialog. The query is syntax highlighted using the same editor settings from the SQL Edit or Stored Procedure Edit window.
336
Chapter 10
337
Right-clicking over the Query Results grid displays this popup menu:
Save As Saves the data to Clipboard or File (same dialog as Grid Save As from the SQL Edit windows SQL Results Grid, see page 107 for details)
Export to Flat File Saves the data as a Flat File (same dialog as Flat File Export, see page 110 for details)
Find Data Finds data in the grid (same dialog as Find Data, see page 112 for details)
338
Right-clicking over the Explain Plan window reveals this popup menu
Copy to Clipboard Copies the Explain Plan statement (in text mode) to the Clipboard
Optimizer Mode Allows you to select the query optimizer mode for subsequent statements from Choose, Default, Rule, First Rows, or All Rows.
Chapter 10
339
Visual Select an element from the list which includes Table Title Table Data Table Border Field Type Font Calculated Field Font Inner Join Outer Join Click over the desired color box to select a color for the element. If appropriate, right-click over the color box to select a background color for the selected item. A preview of the Table object with its new colors is displayed in the preview window below. You can also select fonts for Table Title or Table Data then click the font button which has the picture of the three A's in different fonts. Title Alignment has radio buttons that let you align the title either left, center, or right. You can click the Rounded Shapes checkbox to give your table squares rounded corners. You can adjust the thickness of the table object border by selecting a value from 1 to 10 on the Border Width selector. You can also click and drag the border arrow up and down the 1 to 10 scale to select the desired width. The preview pane shows the result. If you want to discard your custom settings and return to the default settings for the SQL Modeler > Visual options, click the Revert to Default button.
340 General Automatic AutoJoin Default Checked When checked, this feature will automatically check foreign key constraints and join tables that are dropped into a model with other tables. If the option is unchecked, then you can manually join tables with the table popup menu.
Default "Show Schema Name" On When selected, this feature will always precede the table name with the schema name (i.e., myschema.mytable) in the generated SQL. Schema names are always used if the table belongs to a different login.
Revert to Default button Click this button to discard your customized options and revert to the default settings for the SQL Modeler > General Options.
Functions This is the list of functions displayed in the Field Definitions dialogs. To add a function from the list, select it and click the <Remove> button. Revert to Default This will discard the customized setting and revert to the default settings for the SQL Modeler > Functions Options.
Refer to TOAD HELP for more information about the many options, functions, and windows that are in the SQL Modeler.
Chapter 10
341
Object Search
The Object Search button is on the main toolbar.
You can open the Object Search window by either clicking the toolbar button or by selecting the Database > Object Search menu item. This button, on the Object Search window, lets you change the active session for the window. Object Search searches all database object names, table column names, index column names, constraint column names, trigger column names, and procedure source code for a keyword or phrase. Each of these items can be searched or excluded from the search via checkbox options. Many of the capabilities of the Object Search window can be found on the Filters for the Schema Browser window allowing the results of the search to be viewed in a browser. You can search across All Users, including or excluding SYS and SYSTEM schemas, or you can search just one schema, by selecting the schema in the Schemas/Owners dropdown list. To search across all schemas, pick the first entry in the Schemas/Owners dropdown list, entitled, * ALL USERS.
In the Procedure Editor chapter, a C_TO_FAHRENHEIT procedure was created. Here, a search in the appropriate schema for C_TO finds the C_TO_FAHRENHEIT function and source.
342
5 6 7 8
Chapter 10
343
DDL Reports
The Reports button, on the main window, activates the TOAD Reports window.
Two ways to invoke DDL Reports. 1 2 Click the Reports button on the main window. Click the View > Reports menu item.
Use this function to print detailed DDL reports of a schema. This prints the properties of the selected table(s). The Reports tab includes a schema dropdown selection and lists numerous options of what you wish to include. The Tables Selection tab allows you to select which table(s) to include. The Views tab lets you select which available view(s) to include. The Options tab includes options such as printing each table/view on a new page. Printer Setup provides additional printing options such as Landscape and Portrait radio buttons, printer selection, and paper size. Indexes and Constraints reports have not been implemented so their associated buttons are disabled.
344
Chapter 10
345
346
Here, the DEPT table is selected from the SCOTT schema. Then the EMP table is selected from the Related Tables dropdown. NEW YORK was selected from the main table and only the New York Employees are displayed in the EMP grid.
Chapter 10
347
Privileges
The Privileges window is where users are created, and role and user privileges can be viewed or altered. You get to this dialog via the Database > Privileges menu item. If you do not have DBA privileges, you cannot access this window and you will get a "ORA-00942 Table or View does not exist" error if you try to open this dialog.
With the Privileges window, Database Administrators can view: 1 Users (a). When the user account was created, their tablespace and profile settings (b). Which Roles they have granted to them (c). What Object Privileges they have granted to them (d). What System Privileges they have (e.g., SELECT ANY TABLE)
Roles (a). System Privileges (b). Users with the Role (c). Object Privileges (d). Granted Roles
348 3 System Privileges (a). Roles with the Privilege (b). Users with the Privilege
From the Users tab you can: 1 Create a script to recreate the selected user, which includes the "Create User" command, and all the necessary "Grant" commands to recreate the user. The script is copied to the clipboard. Create a new user, which will open the Create User window, where you can select the username, password, tablespace, profile settings, system privileges, and roles. Modify the selected user, by changing user settings, or adding more system privileges and/or roles. Create a new user as an exact copy of the selected user. Drop an existing user. Revoke a single or multiple Role, Object Privilege, or System Privilege from a user. Change a users role from DEFAULT to not DEFAULT or vice versa.
3 4 5 6 7
From the Roles tab you can: 1 2 3 4 5 Drop a role. Revoke a single or multiple System Privileges from a role. Revoke a user from the selected role. Revoke a single or multiple object privilege from a role. Revoke a role from a role.
Chapter 10
349
Rebuild Table
Use this function to rebuild a table, optionally dropping column(s), and/or renaming column(s). This will also coalesce the space occupied by the table.
You get to this window via the Database > Rebuild Table menu item. This window will create a complete script to rebuild a table, after which you can further edit to customize, if desired.
350
To Rebuild a Table
1 2 3 4 Logon as the table owner, because you cannot change owners in the Rebuild Table window. Click the Database > Rebuild Table menu item. Select a table to rebuild from the Tables dropdown list. On the Options tab, select the storage parameters. You can either use the original storage parameters or use the current table size as the initial extent, which will combine all extents together into one extent, resulting in faster disk performance. On the Columns tab, double-click a column on the upper list to exclude it (drop it) from the table. To rename a column, click to select it (from the upper list), wait until after the mouse double-click time, then click it again. Enter the new name for the column. Click the SQL tab. The rebuild table script will be constructed and displayed. Now you can either save the script to a file, or copy it to the clipboard. To execute the script, copy it, paste it into the SQL Edit window, and execute it.
Indexes owned by different schemas are not rebuilt in the Rebuild Table process.
Chapter 10
351
TOAD Security
TOAD includes a security feature. So, you can restrict TOAD users from having access to specific TOAD features.
To set up security
1 Load the \TEMPS\TOADSECURITY.SQL script to create two tables in the TOAD schema: TOAD_FEATURES and TOAD_SECURITY. These are REQUIRED to be in the TOAD schemathey cant simply be in another schema with synonyms pointing back. TOAD_FEATURES is a two column table. NAME is the keyword that TOAD responds to in order to enable or disable functionality. DO NOT change the data in the NAME column. DESCR is the description of the specific TOAD feature to enable or disable. Feel free to edit the descriptions of the features, if you wish. If there is some ambiguity about a function, then the description should indicate where that function exists in TOAD. "SB" is for Schema Browser. TOAD_SECURITY is a two column table of USER and FEATURE, from TOAD_FEATURES.NAME. If there is not a record in TOAD_SECURITY for the given user and function, then the user cannot run that function. 2 Run TOAD, login as the TOAD schema, select the Database > TOAD Security menu item to bring up the TOAD Features Security window. Select the user or role, then select the features you want to grant to that user. All other features will be disabled from this user. You can also delete records from the TOAD_SECURITY table directly, in order to remove functions from certain users. Since other non-DBA users only have SELECT privileges to the TOAD_SECURITY table, they cannot make changes to the security.
352 3 Click the Grant SELECT button so that the user or role can see the TOAD.TOAD_SECURITY table. If the user cannot "see" the TOAD_SECURITY table (i.e., they do not have SELECT access granted to them), then they have FULL access to all TOAD features. If the user has SELECT privileges on the TOAD_SECURITY table, then the security is in effect. Menus are disabled and enabled from top down. For example, if the entire Create menu is disabled for a user by a CREATE MENU record in the security table, then all items on the Create menu will be disabled. If there is also a CREATE INDEX record in the security table, then that individual menu item will be re-enabled. Not all buttons, menus, or functions in TOAD are contained within this security scheme. If you need to restrict other functionality, please let us know. You can also create collections of TOAD features using existing Oracle roles. Grant the features to a role, e.g., DEVELOPER_ROLE, grant the role to the end user(s), then those TOAD users will get the collections of TOAD functionality without having to set up the same list of TOAD features for multiple users. NOTE: TOAD security is not enforced if the user has the DBA role.
Chapter 10
353
Example #1 To disable only the Kill Session feature from user SCOTT
Note that users can Kill Oracle Sessions in two windows: Tuning > Server Stats > Locks tab has a Kill Session button, and View > Kill/Trace Session has a Kill Session button.
The Tuning > Server Stats > Locks tab window contains a Kill Session button, which can be enabled or disabled for different users through TOAD Security.
1 2
Start TOAD, login as user TOAD or a user with the DBA role, go to the Database >TOAD Security window. Select "SCOTT" from the Schema/Users dropdown list.
354 3 Confirm that SCOTT has Select privilege to the TOAD.TOAD_SECURITY table. If the SELECT button caption is "Grant SELECT" then click it to execute the grant. If the button caption is "Revoke SELECT" then the grant already exists.
Here, Kill Session Buttons and View Menu/Trace/Kill Window were selected from the Granted features list and moved with a click of the left arrow to the available features list. 4 Copy all features to the "Granted Features" list. Select "View Menu, Trace/Kill Window" and "Kill Session Buttons" from the "Granted Features" list. Use click <CTRL> click to select multiple items in the list. Click the Remove One button to move these two features back to the Available Features list. You can also use drag and drop between the two lists.
Chapter 10
355
Click the EXECUTE button. TOAD will "grant select on toad.toad_security to scott" and write these records into the TOAD_SECURITY table: USER_NAME SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT SCOTT FEATURE ADD COLUMN ADD CONSTRAINT ADD INDEX ALTER CONSTRAINT ANALYZE ANALYZE ALL TABLES COMPILE DEPS COMPILE SCHEMA CREATE INDEX CREATE LINK CREATE MENU DROP INDEX DROP TABLE DROP TABLES IMPORT MENU REBUILD INDEX REBUILD TABLE SCHEMA BROWSER SESSION STATS TABLE PRIVS TOAD SECURITY TUNING MENU VIEW EXTENTS VIEW MENU VIEW TABLESPACE
Have user SCOTT logoff/logon to TOAD. Their View|Kill/Trace Session menu item is now disabled, and their Kill Session button on their Tuning > Server Stats > Locks tab is also disabled, thus the Kill Session functionality has been removed from user SCOTT.
356
Example #2 To set up a list of different kinds of TOAD features and then grant the list to select groups of users
1 2 Start TOAD, login as user TOAD or a user with the DBA role, go to the Database > TOAD Security window. Select DEVELOPER _ROLE from the Schema/Users dropdown list. These are standard Oracle roles. Have your DBA create the roles if necessary. DO NOT use the DBA role. When TOAD starts, if the user has the DBA role, then that overrides everything else, including security. Confirm that DEVELOPER_ROLE has Select priv to the TOAD.TOAD_SECURITY table. If the SELECT button caption is Grant SELECT" then click it to execute the grant. If the button caption is "Revoke SELECT" then the grant already exists. Copy the desired features to the "Granted Features" list. Click the EXECUTE button. TOAD will "grant select on toad.toad_security to developer_role" and write the selected records into the TOAD_SECURITY table: USER_NAME DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE DEVELOPER_ROLE FEATURE ADD COLUMN ADD CONSTRAINT ADD INDEX ALTER CONSTRAINT ANALYZE COMPILE DEPS COMPILE SCHEMA CREATE INDEX CREATE MENU DROP INDEX DROP TABLE DROP TABLES IMPORT MENU REBUILD INDEX REBUILD TABLE
4 5
Chapter 10
357
Confirm that the Oracle Role has been granted to the user: [grant developer_role to scott]. Have user SCOTT logoff/logon to TOAD. Their TOAD features should be limited as specified. Repeat these steps for setting up features for the other desired roles, e.g., TUNER_ROLE, MAINTENANCE_ROLE, etc.
358
View Menu
The Main View Menu contains the following menu items:
Browser Filters Constraints Dependencies Explain Plan Session Info Kill/Trace Session Extents TableSpaces Oracle Parameters Source Control Check-In/Check-Out Schema Differences Table Duplicates Reports Oracle Users List Options PL/Formatter Options (enabled if RevealNet PL/Formatter is installed)
Chapter 10
359
Options Menu
The View > Options menu contains numerous options. Many of these options have already been discussed. The options in the menu are:
General Oracle SQL Editor Data Grids Procedure Editor Editors StartUp Schema Browser Files Debugging Object Browser Source Control Printing SQL Modeler
This section will briefly cover the Options > General, Oracle, Startup, Files, Source Control, Printing, and SQL Modeler. Refer to TOAD Help for information on the other TOAD Options.
360
General Options
Show USER@DATABASE in window captions Default Checked If checked, TOAD will show the schema username, the "@" symbol, and the database alias in the window caption on the applicable windows. If unchecked, TOAD will only show the schema username.
Show details following Oracle connection (and Oracle DLL load) features Default Checked If checked, this option displays a message box with details about the TOAD to Oracle connection handshaking.
Confirm before closing TOAD Default Unchecked If checked, TOAD will prompt you with YES or NO buttons when you either click the control box, close the TOAD application button, or select the menu item File > Exit.
Allow multiple copies of TOAD to be loaded Default Unchecked If checked, will permit multiple instances of the TOAD application to be loaded.
Display dropdown menus on ChangeSession buttons Default Checked If checked, will display the dropdown arrow on the Load from File or Load Source from Database toolbar buttons so that you can pick the last 10 items, and will display the dropdown arrow on the change session buttons.
Chapter 10
Other TOAD Options and Features If checked, the splash screen will display when you start TOAD.
361
Use the old style clipboard keys in the Edit menu Default Unchecked If checked, will use the old style clipboard keys in the Edit menu.
Use locale settings (date format, decimal, char, etc.) Default Unchecked If checked, TOAD will use the locale settings.
362
Oracle Options
Commit automatically after every statement Default Unchecked This is a session level setting that, when checked, forces an automatic COMMIT to be sent following every statement.
Prompt for Commit when closing TOAD if AutoCommit is disabled Default Checked When Auto Commit is disabled, TOAD asks whether to perform a commit when the program is terminating. If this option is unchecked, TOAD will NOT prompt and any uncommitted statements will be unsaved. Oracle will perform a commit following any DDL modifications.
Save passwords for Oracle connections Default Unchecked Normally, only the schema and database are saved to the TOAD.INI file for each new Oracle connection. When checked, this option saves the passwords as well. Be sure you work in a secure environment where your TOAD.INI file will not fall into the wrong hands.
Encrypt saved passwords Default Unchecked If checked, will encrypt the saved passwords so that editing TOAD.INI will not reveal what the passwords actually are.
Save previous Explain Plan results (requires TOAD tables) Default Unchecked If checked, will save the explain plan outputs in the TOAD tables, viewable in the View > Explain Plan window.
Chapter 10
Other TOAD Options and Features Use \TEMPS\EXPLAN.SQL to fetch Explain Plan results Default Unchecked
363
If checked, TOAD will read the file EXPLAIN.SQL, which you can customize via a text editor, and TOAD will use that query to fetch and display the Explain Plan results.
Explain Plan Table Name textbox Default TOAD_PLAN_TABLE This is the table name that you want TOAD to use when saving explain plan results. Use TOADPREP.SQL or NOTOAD.SQL to set this up. Refer to the Installation Notes topic in TOAD Help for more information on installation.
User name for Explain Plan textbox Default the windows logon name This is the username that will be used when writing out and fetching explain plan data.
Full path of SQL*Plus textbox Default- Blank This is the drive letter, path, and folder location of the SQL*Plus executable. If blank, TOAD will use the ORACLE_HOME\bin folder to find the SQL*Plus executable.
Use a separate connection when TOAD itself is generating transactions Default Unchecked If checked, when TOAD is putting data into the TOAD temp tables or explain plan function, this setting will force TOAD to use a separate connection.
364 Load tablenames from database at time of Login for each connection Default Unchecked TOAD caches tablenames and only queries tablenames the first time they are needed per Oracle session. If checked, this option will cause TOAD to requery Oracle for tablenames every time they are needed to fill a list of tablenames. If the table list is already cached, the list will override the global browser filter for tables, when the Schema Browser window is opened.
Refresh tablenames list on every display Default Unchecked Throughout TOAD, there are lists that display the tablenames for the current schema. Usually, once TOAD reads the list, the list is cached to speed all future displays. If checked, this option forces a refresh before every display. Note that table name lists are affected by the Browser Filters.
Display size of extents dropdown list Default Kilobytes (KB) This lets you select the table storage extent size in either Bytes, Kilobytes (KB), or Megabytes (MB).
OCI Array Buffer size number box Default 25 This lets you enter a number for the OCI Array Buffer size.
Optimizer mode for DDL queries Default "Default" This lets you select the best optimizer hint for the DDL queries that TOAD executes. You can choose from the following: Default /* + CHOOSE */ /* + RULE */ /* + FIRST_ROWS */
Chapter 10
365
Startup Options
Play TOAD Wave File at Startup Default Checked If checked, will croak when TOAD is starting. If you are having sound card problems, uncheck this option. Use a 3D Main Form (MDI parent inner client area) Default Checked If checked, TOAD paints the main form in three dimensional gray/black lines. Decimal Character (affects printing and number conversion) textbox Default "." (period) This will be the character that is used as a decimal. Start Up Windows Default "SQL Editor" You can select which MDI child window(s) comes up when TOAD starts: SQL Editor, Procedure Editor, and/or Schema Browser. File to AutoLoad on Startup textbox Default Blank (display no file) This file will automatically be loaded into the first SQL Edit Window that displays following a database Login. Check for Access to DBA Views Default - Unchecked If you have access to the DBA views, such as DBA_TAB_COLUMNS, then check this option. At session startup, TOAD will see if DBA views are available to that particular user schema. If so, TOAD will query the Oracle Dictionary using the DBA views instead of the ALL views such as ALL_TAB_COLUMNS. DBA views do not have security checks, so they're faster than ALL views.
366 Check for Access to DBMS_Transaction to Prevent Unnecessary Commit Reminders checkbox Default Unchecked If you have access to the DBMS_Transaction package, check this option. TOAD will check for it, and use it instead of prompting for commit reminders.
Chapter 10
367
Files Options
Save Files in Unix Format Default Unchecked If checked, files are saved without CR/LF pairs. Tabs are converted to spaces. Export File Extensions Procedures Enter the desired file extension for exporting procedures. The default is PRC. Functions Enter the desired file extension for exporting functions. The default is FNC. Package Specifications Enter the desired file extension for exporting package specifications. The default is PKS. Package Bodies Enter the desired file extension for exporting package bodies. The default is PKB. Triggers Enter the desired file extension for exporting triggers. The default is TRG. Views Enter the desired file extension for exporting views. The default is VW. File Load/Save Dialog Filters Nearly all of the File Open and File Save dialog windows displayed through TOAD are for the purpose of manipulating SQL files. The grid dialog allows you to customize the file extensions that display in the system dialog windows. To add another filter, begin typing in a blank row. To delete a filter, highlight the text and press the <DELETE> key.
368
These are the default filters: FILE TYPE SQL Text Files Query Files All Files FILTER *.sql *.txt *.qry *.*
File Association dialog This will create a windows file association for the specified file extensions. If you were to double-click in the file explorer on a *.SQL file, for example, then TOAD would startup automatically.
Chapter 10
369
Prompt to check in all objects when closing connections Default Unchecked If you've checked out objects through TOAD Source Control (TOAD VCS), before closing connections you'll be prompted to check the objects back in with a YES or NO dialog.
Use TOAD Checkin/Checkout features Default Unchecked If checked, the TOAD VCS checkin/checkout features will be enabled.
Automatically checkout objects before compiling Default Unchecked If checked, TOAD will automatically checkout objects before performing a compile. It uses tables to check out the object.
External Source Control Options radio buttons None, SourceSafe v5.0 or later Default None This option lets you select the desired source control interface.
Default Database dropdown list Default Blank Select the source control database from the list.
370 VSS Login User Name Default Blank Enter the User Login name.
Chapter 10
371
Printing Options
Use syntax highlighting when printing source code Default - Checked If checked, TOAD will print source code from the SQL Edit window or Procedure Edit window using the same colors as are displayed in the windows. If unchecked, TOAD will print the source code in standard black and white.
Reports Font textbox Default Courier Regular 9 This displays a sample of the font used by the TOAD Reports function. To change the font, click the drilldown "..." button.
372
Chapter 10
Other TOAD Options and Features This window helps database administrators tune their databases.
373
Since this dialog is intended for DBAs, access to certain SYS views is required to query and display the information. If you want to give a TOAD user access to the Server Stats window without granting them the DBA role, see the TOAD Help file, TOAD.HLP, topic Windows: TOAD Server Statistics for a complete list of SYS views to grant select access to the destination user. The dialog is composed of the following tabs: Analysis, Waits, Latches, Sessions, Instance Summary, Locks, and Monitor.
Analysis To set the warning light threshold values, see the topic How to create your TOAD\temps\toadstats.ini file in the TOAD help dialog TOAD.HLP. Analysis shows high level database information such as gets, misses, and cache hits. This information comes from the SYS.V$SYSSTAT view, and other views.
Waits Shows detailed information about database waits, from the SYS.V$SYSTEM_EVENT view
Latches Shows detailed information about database latches, from the SYS.V$LATCH view
Sessions Shows a master/detail presentation of the current sessions, from the SYS.V$SESSION view, and other views. The top grid lists the sessions, whereas the bottom grid lists the detailed information about the selected session, from the SYS.V$SESSTAT view.
Instance Summary Shows overall instance statistics from the SYS.V$SYSSTAT view
374 Locks Shows the current table and row locks in the database, from SYS.V$LOCKED_OBJECT view, and other views
Monitor Shows five graphs of database performance information: Sessions, Cache Hit Percent, SGA Memory Usage (Oracle 8 or higher), Shared Pool (Oracle 8 or higher), and Indexed Queries Percent
NOTE: The TOADSTATS.INI file contains default values that are decimal values that use the American "." (period) as a decimal character. If your locale settings require a different decimal character, you should either edit TOADSTATS.INI or delete the file entirely.
Chapter 10
375
Oracle's SGA (System Global Area Oracle Shared Memory) is a pool of the most recently used SQL statements. Not all SQL statements can be retained in the SGA forever, because it is a limited size. The least frequently used statements are discarded in favor of new ones. The dropdowns let you select the sort order of the results, the type of statement and the user or all users. You can further filter by showing only statements with a specific number of executions (more than one), and/or only those statements containing a specific keyword. Once your filters are set, click the Refresh the List of Statements toolbar button. If you want to work with a particular SQL statement in more detail, click the Load selected statement into the SQL Editor toolbar button.
376 The SQL Text and the Tabs in the bottom window (SQL, Execution Stats, and Explain Plan) are the details for the selected SQL.
SQL Shows the entire SQL for the selected SQL statement. If you get the "SQL Body Unavailable" message when clicking on the SQL tab, then the SQL is not present in Oracle's SGA, which is a pool of the most recently used SQL statements. Not all SQL statements can be retained in the SGA forever, because it is a limited size. The least frequently used statements are discarded in favor of new ones.
Explain Plan
Shows the Explain Plan for the selected SQL statement in the "SQL Shared Pool" tab. The total cost of the statement is displayed in the Total cost for statement label. If the cost information is not available because of rule based optimization, then this label will be blank. You can only view the execution plan for a statement if you have rights to access the referenced objects in the statement.
Chapter 10
377
378
NOTE: These estimation values are based on how much disk space the table data occupies. These values differ from the EXTENTS values displayed on the Schema Browser window, Tables tab, Stats/Size tab, because EXTENTS are containers that store data. Extents are created with a certain container size, e.g., 1MB. Each extent could be empty, half full, three quarters full, or full. In all of these cases the EXTENT size remains the same, 1MB, but the amount of disk space occupied by data changes.
Chapter 10
379
380
Chapter 10
381
Using DBMS_PROFILER
Improving application performance is an iterative process. Each iteration involves the following: 1 2 3 Exercising the application with one or more benchmark tests, with profiler data collection enabled. Analyzing the profiler data, and identifying performance problems. Fixing the problems.
To support this process, the PL/SQL profiler supports the notion of a run. A run involves running the application through benchmark tests with profiler data collection enabled. You can control the beginning and the end of the run by clicking the Toggle PL/SQL Profiling button in the main TOAD toolbar.
Some PL/SQL operations, such as the first execution of a PL/SQL unit, might involve I/O to catalog tables to load the byte code for the PL/SQL unit being executed. It could take some time executing package initialization code the first time a package procedure or function is called. To avoid timing this overhead, you should warm up the database before collecting profile data. Warming up involves running the application once without gathering profiler data.
Collected Data With the Probe Profiler API, you can generate profiling information for all named library units that are executed in a session. The profiler gathers information at the PL/SQL virtual machine level that includes the total number of times each line has been executed, the total amount of time spent executing that line, and the minimum and maximum times spent on a particular execution of that line. The profiling information is stored in database tables. This enables the ad-hoc querying on the data. It lets you build customizable reports (summary reports, hottest lines, code coverage data, etc.) and analysis capabilities.
382 With Oracle8i, a sample textual report writer is provided with the PL/SQL demo scripts.
1 2
Select the Database > PL/SQL Profiling menu option to turn on the profiler, or click the Toggle PL/SQL Profiling button in the main TOAD toolbar. Execute a procedure from the Schema Browser OR the Stored Procedure Editor using the Execute button. You will be prompted to enter a description of the procedure being executed. This will show up in the Profile Analysis window when you are analyzing the results. Run the procedure several times to get some data into the profiling tables. You can turn off profiling if you want to. Be careful not to leave the profiler toggled on when you switch to other TOAD windows. Otherwise, profiler data will be collected from the queries TOAD performs to populate those windows.
Chapter 10
383
Select the Database > Profiler Analysis menu item. The Profiler Analysis window will display. There are three levels to the data. The top level contains the individual Runs of each procedure executed while profiling was enabled. Double-click on one item for the execution stats for that individual run. At this level, you can double-click to see the line-by-line performance times for individual procedures called during profiling.
The top half of the window is a pie chart (or bar chart, depending on your selection) showing the percent of time required to run each component of the procedure. The labels on the chart show actual execution time in milliseconds, whereas the values in the legend are the percent of execution time. There are labels for fastest, slowest, and average unit or line of code.
The bottom half of the window lists the runs, including Run Number, Procedure, Timestamp, Total Time to execute, and Comment. To sort in ascending or descending order, click the column header of the column you want to sort. A black triangle pointing up (in the column header) indicates order up is ascending, down is descending.
384 Drilling down on a run will list the details of the run including Unit Type, Owner, Unit Name, and Total Time to execute.
When drilling down you see the lines of code executed and profiled. The column headers change to Line Number, Passes (how many times each line of code was executed), Total Time to execute the line, Min Time, Max Time, and the line of Code itself.
Above the Profiler toolbar is a horizontal splitter that divides the top half of the window and the bottom half. Drag it up or down to show more or less detail.
Chapter 10
385
Here, the left arrow would drill back up and the right arrow would drill down. Select a wedge of the pie and double-click to drill down, showing the amount of time required to execute each statement in the procedure. To drill back up, click the Less Detail Left Arrow button in the Profiler Analysis toolbar. The More Detail Right Arrow button can also be used to drill down. You can also double-click on a procedure name in the list to drill down.
Procedure Editor Select a procedure in the list, and click the Procedure Edit Window toolbar button to load the selected procedure into a Procedure Edit Window.
Refresh Profiler If you switch to other windows to execute procedures for profile analysis, and switch back to the Profiler Analysis window, click the Refresh Profiler button to requery the profiler tables.
386
Profiler Filters If you want to filter OUT certain profiler analysis data, such as all calls of SYS.DBMS_OUTPUT, click the Profiler Filters button on the Profiler Analysis toolbar, to display the Profiler Filters window. Select the schemas that you want to filter out.
Delete Run If you want to remove a set of profiler analysis data for a particular run, select the run and click the Delete Run button on the Profiler Analysis toolbar. The data will be deleted from the profiler tables. The Delete Run button is only enabled when a run is selected. Drill back up to show less detail in order to select a run.
Chapter 10
387
Pie Chart Bar chart You can change the graph from a pie chart to a bar chart or vice versa by clicking the Pie Chart or Bar Chart buttons on the Profiler Analysis toolbar. The selected button will be depressed. When you click each pie chart wedge or bar chart bar, the list at the bottom will select the corresponding item.
Rotate Graph When viewing the pie chart, if the labels overlap, try using the Rotate Graph button, or maximize the Profiler Analysis window to give it more client space. Graph Properties If you click the Graph Properties button, a dialog displays that lets you change the visual display of the graph and/or group together values below a certain percentage or value. This is useful when you have several small pie wedges or bars.
388 3D 3D Enabled is checked by default, causing the chart to be three-dimensional. If you uncheck the Enabled box, your chart will be two-dimensional. If 3D Enabled is checked, you can set the percentage of dimension and the elevation.
Pie Chart Grouping Radio buttons lets you choose None, Below percentage, or Below value.
Gradient If the Gradient Enabled box is checked, you can choose a multi-color background with a start color and an end color. The two color gradient gives the background a gradual backlight effect. If you prefer one solid color, you can choose the same color for your start color and your end color. Radio buttons let you choose a direction for your gradient such as left to right, from the corner, etc. Once youve completed your graph properties selections, click OK and your graph will display with your new colors.
If you can see the pie chart labels but you cant see the pie chart, resize the window horizontally to allow more drawing space.
Hiding Profiler Data If you right-click over the list, you can temporarily hide some data so that a better analysis of the remaining data can be performed.
Chapter 10
389
For example, if a particular statement takes 95% of the overall execution time, hide it, and the remaining statements, which were under 1% each will blow up to a larger relative percentage on the graph.
390
In this example, the Profiler shows that PROFILER_TEST_PROC took 1940.2629 milliseconds to run (or 1.94 seconds). The legend shows the total number of runs the user profiled, which in this case was 2, the fastest run, the slowest run, and the average run. The legend also shows the percentage of total time (of all runs profiled) for each procedure.
Chapter 10
391
Drilling down from the previous example, the Profiler shows line 15 looped 15,164 times in 3.1966 milliseconds. It also reveals total times and code for the other lines. You can click on the different parts of the pie to see the corresponding code. The legend shows the total lines of code for the selected procedure, and the fastest, slowest and average lines. The legend also shows the percentage of the total execution time for each line.
TOAD HELP has other examples and more information about the Profiler.
392
Objects Panel
The Object panel (left side of the window) list object types in a hierarchy display. A dropdown list lets you select a schema. You can browse or edit objects in other schemas, if you have appropriate Oracle Database privileges. You can drill down or up by either double-clicking the object, or single-clicking over the expand (plus) or collapse (minus) symbols. You can also drill down by pressing the "+" (PLUS) key on the numeric keypad, "-" (MINUS) to drill up, and "*" (ASTERISK) to expand all. Once you select an item, a second click brings the name of the object into edit mode so you can rename the object. Type in the new name and press <ENTER>.
Icons for the objects in the hierarchy: Object Attribute Method Object changed but not yet recompiled
Chapter 10
Other TOAD Options and Features If an object name cannot be displayed in the given amount of horizontal screen space, a tooltip popup displays with the complete object name. A vertical splitter divides the objects panel (left panel) and the details panel (right panel). To move the splitter left or right, click and drag it. The name of the selected object appears in the status panel at the bottom of the window, even while you manipulate items on the details panel. Right-Click in the objects panel to display the following menu.
393
Remove Removes the selected attribute from the object. NOTE: You cannot remove methods.
394 Go To Switches to the Body tab and positions the cursor on the selected method. (Go To becomes enabled when selecting a method)
If your object comes up as "Status: Incomplete" it will often not display any attributes or methods under it in the tree. This is because there is an error in the object that the user must discover and resolve. Make sure you followed the Rules for Object Creation, and check for syntax errors.
Chapter 10
395
Details Panel
This details panel displays details of the object that you select from the objects panel. When the root node, Object Types, is selected, a list of Objects displays on the details panel. This list includes the object name, number of attributes, number of methods, and the following true/false statuses: Predefined and Complete. The list is sorted alphabetically. When an object is selected, the details panel displays a three-tab interface listing: Properties, Specification, and Body. When an attribute is selected, the Properties tab displays detailed information about the attribute, including data type, schema, object, length, precision, and scale. When a method is selected, the Properties tab displays a list of parameters to the method, the method type, and restrictions of the method.
396
Properties Tab
Objects When an object is selected in the hierarchy, the Properties tab displays: 1 2 3 A list of tables created based on the object. A list of columns whose data type is either a REF or nested reference to the object. A list of dependencies on the object, including other Oracle objects such as packages.
Options on the View > Options > Object Browser node, lets you have TOAD automatically query and load these three lists. With the option on, it takes a few seconds more to query and display this information. If your "Autoload" options are off, then you can right-click over the three lists and select Load from the menu to load each list individually.
Attributes When an attribute is selected in the hierarchy, the Properties tab lets you select or adjust the settings for the attribute. You can select from the basic data types for the attribute, e.g., INTEGER, VARCHAR2, DATE, etc., or select REF or Nested Object to refer to other objects, in which case Schema and Object dropdown lists become enabled.
Methods When a method is selected in the hierarchy, the Properties tab displays a list of parameters to the method, including parameter name, data type, mode (IN, OUT, etc.), and Object. The Properties tab contains a dropdown list to select the method type (Procedure, Function, Map Function, or Order Function), a label indicating if the method is overloaded (True or False), a dropdown for method return data type (if Function), dropdown lists for Schema and Object if the return type is a REF to an object or a Nested Object, and checkboxes for method restrictions WNDS, RNDS, WNPS, and RNPS.
Chapter 10
397
These method restrictions tells the PL/SQL compiler what sort of access the method needs to the database. The compiler can then deny the method read/write access to database tables, packaged variables, or both. WNDS means "writes no database state" WNPS means "writes no package state" RNDS means "reads no database state" RNPS means "reads no package state" You can Add, Edit, or Delete method parameters by clicking the appropriate buttons. In the case of Add or Edit, you will be prompted for parameter name, mode (IN, OUT, or IN OUT), data type, and in the case of REF or Nested Object, Schema and Object. Map Functions cannot have any method parameters associated with it. If you change from Procedure, Function, etc. to Map Function, you will be prompted whether or not to automatically delete all method parameters. Order Functions must have one IN parameter of the same type as the object. If you select Order Function, you will be prompted whether or not to automatically remove all method parameters and add one parameter of the appropriate type.
Specification Tab
The Specification Tab displays the source code for the object's attributes and methods. As with any memo editor in TOAD, you can select the text via mouse select or <CTRL>A and copy it elsewhere via <CTRL>C.
Body Tab
The Body Tab shows the code for the object's methods. If there are no methods, the body tab is empty.
Compile Object Compiles the object, saving it to the database, and resets the "new" bitmap in the hierarchy. The dropdown lets you select to compile a single object or all the objects.
New Object Creates a new object, adding it to the Object Types hierarchy list. The name of the new object is adjustable in the View > Options > Object Browser dialog. The default name in the options menu is NEWOBJECTX (X being an integer that starts at 1 and increments by 1 with each new object name). An attribute is also automatically created, because object types must have at least one attribute.
New Attribute Creates a new attribute, adding it to the selected object. The name of the new attribute is adjustable in the View > Options > Object Browser dialog.
New Method Creates a new method, adding it to the selected object. The name of the new method is adjustable in the View > Options > Object Browser dialog. You can select either a New Procedure, New Function, New Map Function, or New Order Function.
Build/Refresh Object Source Builds the Specification and Body information from the database. NOTE: this will delete any comments you had previously entered in the method code.
Chapter 10
Other TOAD Options and Features Drop Object Drops the selected object. A confirmation prompt precedes the drop. Object Privileges Grants EXECUTE privilege on the selected object to a list of users and/or roles.
399
Save Object to File Creates a script for either the selected object or all objects (which you can choose from the dropdown).
Load Object into SQL Edit window Loads the selected object into a SQL window for further editing.
400
To rename your NEWOBJECT and NEWATTRIB (and NEWMETHOD) to your desired names, Right-Click on the name you want to change in the objects panel and select Rename from the Right-Click Menu. Type in the new name and either press <ENTER> or click outside of the highlighted area.
Chapter 10
401
The Properties tab allows you to fill in details for the Attributes such as Type, Schema, etc. Notice Type has a dropdown list from which you can choose a type such as integer, number, or raw.
5 6
You can add additional Attributes by clicking the New Attributes button. Rename and fill in the details panel as appropriate. You can add methods by clicking the New Method button. The New Method details panel also includes a dropdown for types. Again, you would rename the NEWMETHOD and fill in the details panel as appropriate for your method. When you have finished adding your attributes methods and their details, click the Compile Object button and your object is created. Now the specification tab for the Object will display the syntax for the creation of the object.
7 8
402 Object Browser Options Go to the View > Options > Object Browser to set options for the Object Browser window.
Troubleshooting
Can TOAD connect using 16 bit Oracle SQL*Net? TOAD is a 32 bit application and therefore requires 32 bit SQL*Net.
Is TOAD compatible with WinSock v2? TOAD is neither compatible nor incompatible with WinSock. Any compatibility issues are between SQL*Net and WinSock.
If TOAD Hangs During Splash Screen... There could be a problem with the sound card or sound devices. Edit TOAD.INI, set PLAY_WAVE=0, and try to run TOAD again. You could also rename TOADLOAD.WAV to something else, e.g., TOADLOAD.WAV.OLD, so that TOAD will not find it or attempt to play it.
404
Confirm that the Oracle interface DLL is in the BIN folder. TOAD must have an Oracle interface DLL to connect. It would be ORAxy.DLL, where xy is the database version you are connecting to. So, for 7.1 it is ORA71.DLL. For Net8/Oracle8i, the DLL is called ORACLIENT8.DLL. Remember, if this DLL file is not in the bin folder then TOAD cannot connect. Look for TNS Admin value. The TNS Admin value would be a folder name in the Windows registry. This is an optional folder. If it is not present the default is ORACLE_HOME\NETWORK\ADMIN Open up the TNSNAMES.ORA file. It should be in the Admin folder. Make sure the database alias name you are using is in the TNSNAMES.ORA file. You can click the SQL*Net Help button on the Login window to display the SQL*Net Configuration Help window. It lists Oracle Home(s), whether or not TOAD can find the interface DLL, whether or not your ORACLE_HOME\BIN folder is in your PATH, etc. You can click the Clipboard button to copy the information for pasting into an email for technical support.
Chapter 11
Troubleshooting
405
You can get help from the Quest Software Web site at http://www.quest.com/support/index.html
To access TOAD Help while in TOAD, simply press the F1 key. This activates the standard Windows help dialog with the TOAD.HLP file. TOAD Help includes contents, a searchable index, and details on TOADs features. It also contains details for troubleshooting problems.
Upgrades
For more information about licenses, upgrades, and installation files, refer to the TOAD Getting Started Guide.
This chapter discusses the optional modules you can purchase that work with and enhance TOAD. The following optional modules are available for TOAD. TOAD PL/SQL Debugger (refer to the PL/SQL Debugger chapter of this manual, page 183) Quest Software SQLab Tuner/Xpert Quest Software SQL Impact RevealNet PL/Formatter RevealNet Knowledge Base
410
Key Capabilities SQLab Tuner is a robust, Windows-based SQL analyzer that can locate and tune "offensive" SQL statements buried within homegrown or commercial applications. SQLab Tuner identifies performance issues and enables Oracle database tuning to resolve bottlenecks. SQLab Xpert takes application tuning to the next level by becoming an instant expert on your Oracle database. SQLab Xpert provides context-sensitive tuning advice for SQL statements based on the Oracle execution plan and the structure of your database.
SQLab Xpert
The Tuner identifies, records, and tunes offensive SQL statements. It analyzes a selected SQL statement and makes recommendations that will resolve bottlenecks and improve performance. The Tuner displays different SQL tuning scenarios so that you can choose the best strategy. It displays tables and indexes associated with the selected SQL statements. It also lets you see the logic behind its recommendation. With Tuner, you select a SQL statement, click the Tuner toolbar, and the statement is passed to the SQLab Tuner for analysis. The Tuner places the resulting statement in the Windows clipboard, so that you can paste it back into TOAD. Xpert checks for common database problems, finds SQL problems, and provides tuning advice to improve performance. You can have Xpert actually rewrite your SQL statement based upon the advice you choose. And you can test the new scenario in a tuning session.
For more information on SQLab Tuner/Xpert, go to the Quest Software site at www.quest.com. To purchase a copy, contact Quest Sales at 1-800-306-9329 or send email to [email protected].
Chapter 13
411
SQL Impact lets you see the impact of a proposed schema change. It determines which components of an application will be affected by the changes. It provides accurate and automatic impact analysis for proposed database changes. You can see how a schema change will affect source code. It shows you all the lines of affected code. It also drills down to the individual lines of source code affected.
For more information on SQL Impact, go to the Quest Software site at www.quest.com. To purchase a copy, contact Quest Sales at 1-800-306-9329 or send email to [email protected].
412
RevealNet PL/Formatter
PL/Formatter is an optional add on product by RevealNet that formats your SQL for you while you are in TOAD. With PL/Formatter, while you are in TOAD you can easily format or reformat code with a right-click of the mouse. It also provides recommendations to improve your code. It checks for over 1000 common coding mistakes. You can set formatting options in the View > PL/Formatter Options dialog. If you had the following query, and you had installed PL/Formatter, then you could select the query, click the right mouse button, and select Format SQL from the popup menu. This is what would happen.
select first_name, last_name from employee where first_name like S% order by last_name
/* Formatted by PL/Formatter v2.0.8.0 on 2000/03/28 16:22 */ SELECT first_name, last_name FROM employee WHERE first_name LIKE 'S%' ORDER BY last_name
(04:22 PM)
The trial version of the PL/Formatter will not work with TOAD. If you purchase the commercial version of the PL/Formatter, it will work with TOAD.
For more information on PL/Formatter, visit http://www.revealnet.com. To purchase a copy, contact Quest Sales at 1-800-306-9329 or send email to [email protected].
Chapter 13
413
For more information on Knowledge Base visit http://www.revealnet.com. To purchase a copy, contact Quest Sales at 1-800-306-9329 or send email to [email protected].
414
Quest Software delivers solutions that enable optimal performance and reliability of e-business, packaged and custom applications. Our products ensure availability throughout the application lifecycle with solutions for: Development & Deployment Speed development while maintaining quality applications and accurately deploy changes from development to test to production. Production Support Ensure optimal performance and availability of your production systems with a comprehensive approach that includes enterprise monitoring and diagnostics, database management and high availability solutions. Information Availability Extend the reach of valuable enterprise information and instantly deliver it to the users who need it anytime, anywhere.
Best of breed products that are easy to install and use, provide a quick return on investment, and address the complete application lifecyclefrom development to production and through to information deliverymake Quest Software the number one solution provider for application and information availability solutions. The following pages give you a brief overview of our product families. For more detailed information about their capabilities, please visit www.quest.com/solutions/.
416
SQL Development
Developers are expected to develop and enhance applications faster than ever to keep up with the competition, yet developing SQL code with the traditional command line interface is time-consuming and tedious. Quest accelerates the development process with easy-to-use graphical interfaces, robust editors, and integrated tuning and testing modules that improve the quality of applications before they enter production. SQLab Xpert proactively tune SQL statements before deploying them to production SQL Impact identify the impact of structural changes to the database before deployment Data Manager quickly build test databases with a logical subset of your production data
Deployment
Making a structural change to your database can be one of the most challenging tasks of a developer or DBA. A single complex change such as renaming a column can take hours to implement manually. Quests deployment tools enable DBAs to automatically create, version and deploy structural changes to the database in a fraction of the time it would take manually while reducing the risk of downtime from failed deployments. Schema Manager safely deploy schema changes to your Oracle databases from development to test to production Schema Xpress quickly and easily determine, develop and apply schema changes to your SQL Server databases Data Manager deploy reference data changes and move data between Oracle databases
417
Production Support
Increased reliance on business applications has lead to zero tolerance for downtime and slow response time. Quests Production Support suite ensures application performance and availability through a combination of monitoring, database management and high availability solutions.
High Availability
Quest Software redefines high availability with our revolutionary log-based replication technology. Imposing minimal overhead on the production system, this solution creates a copy database that is less than seconds behind the source enabling report offloading, load balancing and failover. The same technology is applied to Quests space management solutions to enable live reorganizations and object restructuring for the 24x7 database. SharePlex database
LiveReorg reorganize and restructure your Oracle database without incurring downtime
418
Enterprise Monitoring
As more organizations continue to implement complex enterprise systems, maintaining their performance and identifying problems in a timely fashion can become a nightmare. Quest reduces the complexity of maintaining a multi-layer environment with enterprise-wide monitoring. By intelligently summarizing the information IT professionals need to know, Quest offers a practical, easy-to-use solution for an otherwise challenging environment. Foglight alerts system managers to actual or potential problems at the operating system, database and application levels
Database Management
With the database as the core of todays business applications, it is critical that problems are detected, diagnosed and resolved as quickly as possible. Quests database management products safeguard your Oracle database by quickly identifying and resolving common problems, such as bottlenecks, poor performing SQL statements and space-related issues. In addition, proactive schema and data management solutions enable you to better maintain your database without the risk of downtime. Space Manager quickly reorganize and restructure your Oracle database SQLab Xpert immediately identify offensive SQL statements and implement expert tuning advice Instance Monitor immediately diagnose problem areas throughout your Oracle database by monitoring the actual flow of data and processes I/Watch monitor and diagnose your database, application and operating system unattended, 24x7 Schema Manager safely deploy structural changes to your Oracle database Data Manager migrate logical subsets of production data between databases for report offloading and archiving
419
Information Availability
As the speed of business increases, so does the amount of business information. Because the ability to make informed decisions is based on access to the most current information, when it is unavailable or difficult to locate, the entire business suffers. Quests Information Availability suite gets the information generated by your homegrown, packaged, and ERP applicationsor any electronic documentin the hands of those who need it, when and where they need it, and in any format.
Output Management
More than half of your network traffic is compromised of output delivery. Quest manages this chaos with a Web-based, scalable solution for managing, distributing and tracking output to mid-to-large distributed environments. QMaster provides a seamless and effective way to automate and ensure output delivery and schedule batch processes
420
Quest Software is headquartered in Irvine, California and has locations in Atlanta, Boston, Chicago, Dallas, New York, San Francisco, Washington D.C., Germany, the United Kingdom, Canada, Israel, and Australia.
Feel free to contact Quest Software for product information and pricing in any of the following ways: Location USA and Canada Telephone 949-754-8000 FAX: 949-754-8999 UK Germany Australia Email Sales & Marketing Home page Mail address +44-1628-601000 +49-211-770967-0 +61-3-9811-8000 [email protected] http://www.quest.com 8001 Irvine Center Drive Irvine, CA 92618
421
Technical Support
If you have questions about using a Quest Software product, please contact the technical support staff. Please include the version number. You can find your version number in the Help > About menu. If your question is about an error message, include the error text as well. Email [email protected]
422
INDEX
A Advice ................................................................14 Aliases ..............................................10, 12, 17, 67 Column .........................................................116 Database .....................................9, 13, 360, 404 Table.................................33, 67, 323, 330, 333 ALIASES.TXT...................................................67 Analyze ......................................................32, 355 All Tables .....................................................268 Index.............................................233, 270, 285 Table.....................................................233, 268 Anchored ..............................................31, 32, 115 Arguments .......... 42, 151, 173, 181, 223, 228, 292 ASCII .........................................73, 107, 110, 214 Attribute ................... 393, 394, 395, 396, 398, 400 B BLOB ...............................................104, 121, 123 Bookmarks .............................................28, 72, 95 Breakpoint ................ 161, 192, 196, 199, 204, 206 Adding..........................................................205 Conditional ...................................................207 Deleting ........................................................205 Disable/Enable .............................................209 Editing ..........................................................206 Pass Count ....................................................208 Setting ..........................................................205 Browser Master/Detail................................................345 Object ...........................................................392 Schema ............... 29, 32, 64, 118, 178, 184, 231 C Call Stack ......... 186, 192, 194, 199, 200, 202, 216 Capitalization .............................84, 89, 90, 93, 94 Change Active Session...............................61, 238
Chart ........................................................ 383, 388 Bar Chart ............................................. 383, 387 Pie Chart .......................................383, 387, 388 Profiler..........................................383, 387, 388 Check In...................................See Source Control Check Out................................See Source Control Clipboard51, 63, 95, 109, 126, 132, 256, 259, 276, 317, 327, 361 CLOB ...................................................... 104, 121 CNVFUNCS.TXT ........................................... 125 Coalesce........................................................... 349 Code Templates ................................74, 75, 78, 99 Colors8, 52, 89, 91, 199. Also See Syntax Highlighting Columns....102, 106, 110, 111, 113, 123, 257, 270 Column Name Select ....................137, 237, 243 Dropdown ................................................ 40, 43 Comment Code.................................................. 75 Comments.........................................244, 253, 270 Commit ..........47, 48, 362, 366. Also See Rollback Compile ........................................................... 148 Configuring the Editor....................................... 69 Constraints........................248, 250, 261, 271, 310 Check................................................... 253, 266 Create........................................................... 264 Disable................................................. 310, 312 Enable .......................................................... 310 Foreign Key ..................................253, 267, 329 Primary Key......................................... 249, 265 Unique ................................................. 253, 266 Control Characters............................................. 84 Create................114, 165, 234, 246, 251, 351, 382 Constraint ............................................ 264, 265 Database Link .............................................. 314 DBMS_OUTPUT ........................................ 217 Index ............................................................ 252 Object ............................................ 19, 155, 400
423
Procedure .....................................................172 Sequence ......................................................297 Synonym ..............................................180, 307 Table ............................................................123 User ..............................................................348 D Database Links .........................................250, 314 Create ...........................................................314 List ...............................................................314 Date Format........................ 10, 118, 125, 201, 361 DATEFMTS.TXT............................................125 Dates ................................................................124 DATFUNCS.TXT............................................125 DBMS_OUTPUT.............................................127 DBMS_PROFILER..................................380, 381 DDL Reports ....................................................343 Debug ............................... 183, 189, 194, 202, 221 Information... 189, 192, 194, 195, 196, 201, 202 Symbol Table ............................... 195, 196, 229 Debugging 183, 192, 197, 198, 199, 200, 203, 229 Functions......................................................221 Packages...............................................222, 224 Procedures............................................184, 221 Triggers ........................................................225 Dependencies ... 184, 201, 242, 244, 250, 289, 292 Lower (called objects)..................................189 Recompiling .................................................166 Upper............................................................184 Viewing........................................................184 With Debug Information ......................192, 195 Dependent Objects ...................................165, 184 Drag and Drop.............. 44, 82, 102, 142, 202, 325 E Editor................................................ 31, 37, 60, 69 Auto Replace Substitutions ......................67, 73 Code Templates.......................... 74, 75, 78, 100 External ................................................130, 133 Key Assignments ......................... 28, 72, 78, 95 Offline ............................................................52 Parser Scripts..................................................71 Procedure ............................... 69, 147, 153, 171 Read-Only ...................... 69, 103, 105, 117, 122 SQL ..................................................31, 44, 134
Syntax Highlighting................................69, 131 Editor Options28, 33, 52, 56, 67, 69, 72, 73, 75, 76, 78, 98, 100, 164, 205 Encrypt ...............................................................16 End Connection ..................................................17 Exceptions ........................125, 200, 265, 266, 267 Explain Plan .........................19, 20, 42, 49, 50, 51 EXPLAIN.SQL ................................................363 Export .......................................104, 111, 118, 367 Data ......................................................233, 257 Flat File.................................................110, 337 Table Data ....................................................318 Table Script ..................................................252 F Filters........239, 248, 261, 274, 307, 367, 368, 386 Data ......................................................239, 273 Object Lists...................................................320 Object Name.................................................240 Schema Browser...................245, 248, 260, 341 Find.......................42, 76, 151, 174, 180, 236, 337 Editor....................................42, 56, 75, 76, 101 Grid...............................................................112 Fixed.................................................................115 G Goto......................................................31, 42, 151 Grants .......................178, 179, 278, 292, 305, 399 GRPFUNCS.TXT ............................................125 Gutter................................72, 82, 91, 92, 161, 205 Gutter Width.....................................................205 H Help ........................................8, 40, 125, 373, 405 Quest Technical Support ..............................421 SQL Templates.....................................125, 126 TOAD.............................42, 151, 188, 373, 405 Hotkeys...............................................................28 HTML...........................52, 71, 73, 78, 98, 99, 109 Save as..........................................................107 HTML.DCI.......................................................100 HTMLKEYS.BIN ........................................78, 99 HTMLOPTS.TXT ........................................78, 99 HTMLSCR.TXT ................................................71 HTMLSUB.TXT ................................................73
424
I Import...............................................................123 Index.................................270, 283, 286, 341, 379 Analyze ................................................233, 285 Create ...................................................252, 352 Rebuild .........................................233, 283, 284 INI ..............................................................67, 374 As a Language Type.....................71, 74, 78, 99 TOAD.INI ..............................................15, 362 INI.DCI ............................................................100 INIKEYS.BIN..............................................78, 99 INIOPTS.TXT..............................................78, 99 INISCR.TXT......................................................71 INISUB.TXT......................................................73 Initial Caps ...................................................90, 94 J JAVA.DCI........................................................100 JAVAKEYS.BIN .........................................78, 99 JAVAOPTS.TXT .........................................78, 99 JAVASCR.TXT .................................................71 JAVASUB.TXT .................................................73 K Key ...................................................................264 Foreign ......... 254, 264, 267, 281, 329, 340, 345 Primary......... 244, 255, 258, 264, 265, 298, 328 Unique ..........................................................266 Keyboard ............................................................26 Keystroke ...............................................28, 29, 74 L License Key..............................................188, 407 Line Numbers...............................................81, 82 Load ..................... 74, 85, 133, 154, 375, 396, 399 File.......................... 78, 122, 142, 164, 360, 367 Procedure..............................................195, 385 Script ......................................................50, 382 Logoff.....................................See End Connection Logon .....................................................9, 12, 350 LONG.......................................................104, 121 LONG RAW ....................................121, 122, 123 LONGSCR.TXT ................................................71 Lowercase ....................................................42, 94
M Make Code......................42, 62, 63, 128, 129, 130 Master Detail Browser..................................... 346 Memo Editor.........................31, 32, 104, 105, 121 Menu...........................26, 198, 241, 352, 358, 359 Right-Click23, 29, 30, 40, 101, 104, 168, 204, 210, 235, 327, 329, 334, 337, 338, 393 Message Boxes .................................................. 25 Method..............190, 393, 394, 395, 396, 398, 401 Mixed Case....................................See Initial Caps MSCFUNCS.TXT ........................................... 125 N NAMEDSQL.DAT.................................... 58, 145 NEWFUNC.SQL............................................. 156 NEWPACK.SQL............................................. 156 NEWPROC.SQL ............................................. 156 NEWTRIG.SQL .............................................. 156 NLS_DATE_FORMAT .................................. 201 NMBRFMTS.TXT .......................................... 125 NOTOAD.SQL............................................ 19, 49 Null...........................................108, 118, 119, 258 Numbers ..................... 90. Also See Line Numbers Page ....................................................... 81, 106 Row.........................................31, 102, 116, 117 Run .............................................................. 383 NUMFUNCS.TXT .......................................... 125 O OPTHINTS.TXT ............................................. 125 Options Data Grids.................................................... 117 Debugging ................................................... 198 Display........................................................... 82 Editor ............................................................. 78 Editors ......................................................... 131 General .................................................. 79, 360 Logon............................................................. 12 Oracle .......................................................... 362 Other85, 87, 89, 93, 95, 97, 104, 169, 367, 369, 412 Printing .................................................. 81, 371 Procedure Editor .......................................... 163 Schema Browser .......................................... 241 SQL Editor..................................................... 60
425
SQL Modeler................................................339 Startup ..........................................................365 P Package ............................ 149, 182, 185, 287, 367 Debugging ............................ 190, 222, 224, 228 Navigator..............................................157, 166 Parameters......................................See Arguments PARAMS.TXT ..................................................59 Parse...................................................................42 Password ................................................9, 15, 362 PATH ...............................................................404 Personal Oracle ..................................................17 PERSSQLS.DAT .......................................56, 145 PL/SQL Profiling ................................ See Profiler PLSQL.DCI.................................... 69, 74, 75, 100 PLSQLKEYS.BIN .......................................78, 99 PLSQLOPTS.TXT .......................................78, 99 PLSQLSCR.TXT .........................................71, 72 PLSQLSUB.TXT...............................................73 Post.....................................................46, 119, 236 PREDFXCP.TXT.............................................125 Printing.......................................................81, 371 Options ...................................................81, 371 Print Grid................................ 31, 105, 337, 345 TOAD Reports .......................................77, 371 Privileges32, 178, 179, 260, 278, 279, 289, 292, 297, 300 Object...................................................347, 399 Role ......................................................347, 348 System..................................................347, 348 Probe API......................................... 185, 199, 211 Procedures Arguments ......................................42, 181, 182 Compile........................................ 149, 229, 288 Compile Dependencies......... 184, 195, 196, 201 Create ........................................... 155, 165, 172 Dependencies ...............................................184 Dependent ....................................................196 Errors............................................................159 Execute. 149, 160, 176, 183, 189, 222, 223, 385 Grants ...........................................................178 Privileges......................................................178 Product Authorization ......................................188 Profiler .......................................................19, 380 Profiler Analysis.................................. See Profiler
Profiling....................................... 380. See Profiler PSEUDO.TXT..................................................125 Public 178, 180, 234, 248, 253, 269, 279, 297, 307 Q Queries12, 59, 101, 102, 117, 124, 134, 139, 144, 244, 314, 322, 335, 336, 364 Canceling........................................................61 Quest Software .........................405, 407, 415, 420 Contacting ....................................................420 Other Products..............................................415 SQL Impact ..................................................411 SQLab Tuner ................................................410 SQLab Xpert.................................................410 Technical Support.........................................421 R Radio Buttons .............................................22, 279 Rebuild Table ...........................263, 349, 350, 355 Redo .....................................................43, 75, 151 Referential ................................................250, 281 Registration ..............................................188, 407 Reports .............................343, 371, 381, 411, 419 Reports Font .......................................................77 Requirements Debugger ......................................................185 Profiler..........................................................382 TOAD Features ..............................................19 Results Grid..............................102, 104, 115, 332 REVBASE.DLL ...............................................413 RevealNet Knowledge Base...........................101, 409, 413 PL/Formatter ..................................31, 409, 412 Roles.........233, 279, 347, 348, 356, 357, 394, 399 Rollback ............... 47, 233, 263. Also See Commit Row Numbers.......................................31, 32, 116 ROWID ......................................44, 102, 116, 273 S Save ............................33, 107, 109, 288, 337, 367 File............................32, 43, 122, 151, 293, 367 Passwords ...............................................15, 362 Schema ...............................19, 261. Also See User SCHEMA.FLT .................................................245 Search7, 55, 76, 101, 112, 165, 184, 341, 342, 413
426
Security ....................................................243, 307 Passwords .................................11, 15, 348, 362 TOAD.....................................................19, 351 Semicolons .......................................................256 Sequence ..........................................................296 Create ...................................................234, 297 Delete .............................................................96 Edit .................................................................96 Privileges......................................................297 Recreate........................................................298 Set Parameters .. 149, 189, 190, 192, 194, 222, 289 Shortcut Keys ...................................145, 221, 222 PL/SQL Debugger........................................194 Procedure Editor...........................................151 SQL Editor .....................................................40 SHORTSCR.TXT ..............................................71 Show All..................... 76, 165, 199, 203, 249, 334 Single Record View....................................46, 303 Sort ........................... 162, 166, 273, 274, 303, 318 Source Control....................19, 148, 169, 170, 369 SourceSafe....................................148, 169, 369 TOAD...........................................................369 SourceSafe................................148, 169, 170, 182 Splitters Horizontal............... 37, 159, 280, 286, 295, 384 Vertical.........................................159, 237, 393 SQL Recall .............................................55, 58, 63 Named SQLs ..............................42, 55, 57, 145 Personal ......................................55, 57, 58, 144 Previously Executed .......................................55 SQL Results Grid .......................31, 106, 135, 139 SQL*Net ................................12, 14, 17, 403, 404 SQL*Plus ...................................................66, 363 SQLFILES.TXT...............................................143 SQLS.DAT.........................................................56 StartUp ...............................37, 147, 231, 359, 365 Status Panel Indicator.........................................45 Stay on Top ................................................64, 132 STRFUNCS.TXT.............................................125 Strip Code.....................................42, 63, 128, 129 Synonym131, 136, 181, 253, 269, 297, 307, 308, 309 Create ...................................................180, 269 Filter .............................................................307 View .............................................................309 Syntax Highlighting . 69, 72, 76, 90, 131, 164, 371
T Tab Delimited .................................................. 108 TAB Key ........................................................... 26 Table32, 44, 67, 109, 134, 136, 250, 251, 322, 377 Add Column ................................................ 262 Analyze........................................................ 268 Comments.................................................... 253 Create........................................................... 251 Drop............................................................. 269 Export Data.......................................... 110, 257 Filter ............................................................ 260 Privileges ............................................... 90, 260 Rebuild ................................................ 349, 350 Referential ................................................... 281 Script ....................................251, 252, 256, 350 Select ............................................. 44, 131, 343 Truncate....................................................... 263 Tablenames.............43, 69, 90, 131, 152, 249, 364 Viewing ........................................... 44, 68, 245 Tabs (in the editor text) ..................................... 87 Templates ........................................................ 133 Code Completion................................... 74, 133 New Function .............................................. 156 New Package ............................................... 156 New Procedure .............................133, 156, 166 New Trigger................................................. 156 SQL Help..................................................... 125 TEXT.DCI ....................................................... 100 TEXTKEYS.BIN......................................... 78, 99 TEXTOPTS.TXT ........................................ 78, 99 TEXTSCR.TXT................................................. 71 TEXTSUB.TXT ................................................ 73 Thread................................................................ 61 Time Values..................................................... 124 Timeout.................................................... 187, 201 TNSNAMES.ORA ...........................9, 10, 12, 404 TOAD.......................................7, 8, 321, 403, 409 Modules ....................................................... 409 Schema .........................15, 17, 19, 49, 351, 382 Security........................................................ 351 Upgrading .................................................... 407 TOAD Getting Started Guide .............................. 8 TOAD.HLP ..................................................... 405 TOAD.INI ........................................... 15, 16, 201
427
TOADLOAD ...........................................166, 403 TOADPREP.SQL............................. 19, 20, 49, 50 TOADPROFILER.SQL .....................................19 TOADSECURITY.SQL.....................................19 TOADSTATS.INI............................................372 TOADVCS.SQL ................................................19 Toggle .................. 40, 42, 151, 333, 380, 381, 382 Toolbars .....................................................33, 273 Common Edit ......................... 37, 125, 126, 150 Main ...............................................................35 Procedure Edit..............................................148 Procedure Edit Status ...................................197 Profiler .........................................................385 Schema Browser...........................................232 SQL Edit ........................................................37 SQL Modeler................................................326 Trace ........................ 190, 200, 353, 354, 355, 375 Into ............................... 149, 189, 192, 194, 195 Out........................................ 149, 189, 192, 194 Triggers .... 225, 240, 245, 254, 272, 293, 295, 367 Compile................................................233, 293 Disable .................................................234, 294 Drop .............................................................294 Enable...........................................................234 Filter .............................................................294 Truncate .............................................32, 233, 263 U Uncomment Code...............................................75 Undo................................................. 151, 170, 263 Update Grid Edits...............................................48 Upper Dependency...........................................184
Uppercase ...............................................43, 90, 94 User ..........................................9, 20, 90, 166, 243 Create ...................................................347, 348 List................................................237, 278, 279 Modify..........................................................348 USRFUNCS.TXT ............................................125 V Variables...................................186, 199, 211, 329 Bind ................................................................59 Bound .............................................................63 Substitution.....................................................59 Version Information .........................................403 Views..................32, 131, 250, 299, 325, 343, 367 Compile ........................................................300 Filter .............................................................300 Privileges ......................................................300 W Watches149, 189, 193, 199, 201, 210, 211, 213, 215, 228 Windows Dockable.......................................................202 MDI ................................36, 127, 152, 165, 365 Modal .......................................................27, 35 Navigation ......................................................21 Windows Clipboard......................... See Clipboard Windows Stay on Top ..................See Stay on Top Word Wrap.........................................................83 Word-Wrap Column...........................................83