Oracle SQL Developer Workshop
Oracle SQL Developer Workshop
Oracle SQL Developer Workshop Edition AUSOUG Conference 2006 SAGE Computing Services 2005 - 2006
SAGE Computing Services believes the information in this documentation is accurate as of its publication date. The information is subject to change without notice. SAGE Computing Services assumes no responsibility for any errors that may appear in this document. JDeveloper, Oracle SQL Developer, 10G Internet Developer Suite, Application Express, Oracle, Oracle Internet Application Server, Oracle Discoverer, SQL*Plus, Oracle Forms Developer, Oracle Reports Developer, Oracle Graphics, Oracle Developer, Oracle Designer, Oracle Internet Developer Suite are registered trademarks of Oracle Corporation. Oracle8i, Oracle9i, Oracle 10G and PL/SQL, are trademarks of Oracle Corporation. Microsoft and Microsoft Excel are registered trademarks of Microsoft Corporation. Windows is a trademark of Microsoft Corporation. All trade names referenced are the services mark, trademark, or registered trademark of the respective manufacturer. Microsoft Word was used in the production of this document. SAGE Computing Services would like to thank Sue Harper, Oracle Corporation Database Tools group for the SQL Developer materials on which this presentation was based.
Services
Services provided by the company include: Customised Training Programs Post-training Mentoring Database Administration Services Complete Systems Development and Support Consultancy Advice Quality Assurance Tuning Reviews Business Analysis Telephone Advice and Assistance Database Health Checks
SAGE Computing Services Pty. Ltd. aims to provide the best Oracle technology experts to assist our clients in building, implementing and managing business solutions using Oracle software. Sage offers custom training workshops in Oracle products and a complete analysis, design, development and database administration consulting service.
SAGE is a small company which has succeeded by adopting a partnership approach with our clients. We have a long term relationship with many of our clients which is dependent on our providing services which achieve successful outcomes.
enquiries@sagecomputing.com.au
Course Descriptions
(not a full list of available courses, please see www.sagecomputing.com.au for a full course catalogue)
5 days
This course is designed to provide students with the skills and knowledge required to develop a web application using ADF Business Components and ADF Faces (JavaServer Faces) web pages within Oracle JDeveloper 10.1.3.
JDeveloper Introduction JDeveloper IDE Database Connections ADF Entity Objects ADF Associations ADF Domains ADF Input, Output and Command Components ADF Forms, Tables, Trees JSF Configuration, Navigation, Managed Beans and Event Handling Expression Language ADF Page Layout and Menus ADF Faces Skins Deploying an ADF Application Web Security ADF Selection, Validator, Converter and Visual Components Code Management and Source Control Advanced JDeveloper
Online Database Browser Stored Procedure Editor Workspaces and Projects Offline Database Modelling Tools Java Language Application Development Framework ADF Business Components Diagrammer ADF Business Components
ADF Application Modules ADF View Objects ADF View Links ADF Business Component Java Classes ADF Binding Layer and the ADF Model Layer Classes ADF Faces
1 day
3 days
The course is designed to provide the student with the skills and knowledge required to develop a complete application using Oracles Application Express product. The student will develop web interfaces (including forms, reports and charts; addition of validation and customised formatting) to create a small application.
Product Overview SQL Workshop Utilities Application Builder Creating Pages Regions and Items Page Processing Shared Components Themes and Templates Other Page and Region Types Utilities and Reporting Advanced Development Techniques Administration and Deploying an Application
4 days
This course is designed to provide the student with a basis for developing systems using the Oracle database. The SQL language is covered from simple to complex constructs. Guidelines are provided on writing SQL for optimum performance and ease of maintenance.
The Relational Model The SQL Language SQL*Plus and iSQL*Plus Oracle SQL Developer More about SELECT Substitution Variables Using SQL*Plus for Formatting Output Functions Joins Group and Analytical Functions Set Operators Subqueries Data Manipulation Language Database Objects Constraints Views and Sequences Indexes Clusters Security Locking and Read Consistency More Advanced SQL
PL/SQL Workshop
3 days
This course is for developers who will be designing or building applications using the Oracle server. It is relevant for developers who are using the Oracle Developer toolset, and for those using alternative front-end products accessing the Oracle database. The course covers basic PL/SQL syntax and the use of server level procedures, functions and triggers.
PL/SQL Overview Basic PL/SQL Syntax SQL Statements in PL/SQL Procedural Statements Assignment and Conditional Processing Procedural Statements LOOPS Exceptions Nested Blocks and Cursors Tables, Arrays and Records Architecture Overview Procedures / Functions Packages More About Packages Supplied Packages Triggers
5 days
This course is designed for developers who will be designing or building applications using Oracle Form Builder. This is a practical course in which the student builds an application during a series of workshop sessions.
Running a Form Forms Modules and Storage Working in the Builder Creating a Form Form and Data Block Properties Form Layout Items Introduction to Triggers Program Units Check Boxes, Radio Groups and List Items Other Item Types Visual Attributes Mouse Events Relations Alerts and Editors Lists of Values Record Groups Windows and Canvases Transaction Processing and Triggers Advanced Data Block Properties More Trigger Events Determining Form Properties Timers Integrating Multiple Forms Modules in an Application Forms Architecture and Java Integrating Forms with Reports PL/SQL Library Modules Managing Application Development Menu Modules
4 days
This course is designed for developers who will be designing or building applications using Oracle Reports. This is a practical course in which the student builds a series of reports ranging from simple to complex.
Product Overview The User Interface The Designer Interface Storage Building a Paper Report The Data Model Editor Other Query Types Columns Multiple Queries and Links The Paper Layout - Basic Objects Standard Layouts General Paper Layout Properties Advanced Paper Layout Properties Web Reports Displaying Files, Images and Charts Matrices Parameters PL/SQL in Reports Report Templates Publishing Reports on the Web
5 days
This course is designed for Database Administrators. It covers the architecture of the Oracle 10g server, and the procedures required to effectively administrate the database. The course provides a series of practical workshops in which the students can practice the database administration techniques they have learnt.
Oracle 10g Overview Oracle 10g Architecture Database Creation Startup and Shutdown and Oracle Database Oracle Enterprise Manager Database Structure Managing Tablespaces Managing Redo Log Groups and Members Database Storage Managing Undo Security Optimisation Database Tuning The Multi Threaded Server Backup and Recovery Data Pump
3 days
This course is designed for Designers, Developers, and Database Administrators, and examines all aspects of tuning SQL statements and applications.
Defining a Tuning Methodology Diagnostic Tools Processing an SQL Statement Indexes Cost Based Optimisation Stored Outlines Storage Parameters Hash Clusters and Index Clusters Optimising PL/SQL Optimising Applications through Stored Procedures and Packages Data Design for Performance Tuning Tips Partitions Optimise using Parallelisation Tuning Tools
Gathering Statistics
2 days
This course is designed for End Users and examines all aspects of using the latest versions of Oracle Discoverer. Both the web and client server interfaces are covered.
Oracle Discoverer Overview Discoverer Workbooks Worksheets and Conditions Performing Analysis Customising Workbooks and Worksheets Printing and Exporting Query Results Scheduling and Administration
3 days
This course is designed to provide the student with the knowledge and skills required to build corporate portals. The course covers the use of Oracle Portal for content management and includes recommendations and guidelines on the classification and searching of content. The standardisation and customisation of the Portal interface and styles are described. The workshop includes the use of Portal to create simple application components such as forms, reports and graphs. Finally the security management of a corporate portal is considered.
Product Overview Page Groups and Pages Styles, Navigation Bars and Templates Item Regions and Classification Custom Types, Parameters and Events Application Components Forms Application Components Reports Shared Component Other Components Security
1 day
The course is designed to provide the student with the knowledge and skills required to build custom portlets. The course describes the provider and portlet structure and the integration and management of custom portlets within the product. The attendee builds a simple provider and its custom portlets based on an example. The course focuses on PL/SQL portlets to demonstrate the techniques required, but also covers web portlets. Detailed coverage of the Portal API and its use, not only in custom portlets, but to enhance other Portal components is included.
Programmable Portlets Concepts PL/SQL Providers PL/SQL Portlets API Services Session Storage API Services Other Utilities Web Providers
2 days
This course is designed for End Users who require a knowledge of SQL to query the Oracle database. It commences with a description of relational concepts and continues with coverage of the SQL statements required to access information from one or more Oracle Tables. Some basic formatting is also covered.
The Relational Model Structured Query Language SQL*Plus Oracle SQL Developer More About SELECT Substitution Variables Using SQL*Plus for Formatting Output Functions Joins Group Functions
All our training is conducted at the client site and using the clients Oracle licences. Sage Computing Services provides all course materials which the attendees retain after the course as a reference. All Sage trainers are consultants who are using the products in real world situations and can bring a wealth of experience to the classroom.
SECTION 1 - OVERVIEW
The Product
Interface
9
9
9
Help
Help Centre Online Help Manual Context Level Help
10
10 10 11
11 11 12
12 12
More on Connections
Modifying Database Connections Exporting and Importing Connections
14
14 15
16
16
17
17 19 24 26
27
27
27 27 28 28 29 30 30 30 30
Group Functions
SUM COUNT Grouping the Output into Sets of Rows
31
31 31 31
Joins
Foreign keys Select Statements with Join Conditions Using a Table Alias
32
32 32 32
3
3.1 3.2 3.3
33
33 33 38
4
4.1 4.2
39
39 41
5
5.1 5.2 5.3 5.4
Hands On Reports
Data Dictionary Reports User Defined Reports Standard Actions Bind Variable Reports
46
46 47 49 49
Page: 8
Section 1 - Overview
The Product
Functionality
Oracle SQL Developer is a free GUI tool aimed at simplifying and enhancing database development tasks. It facilitates the execution of SQL statements and scripts, the manipulation of Database Objects, editing and debugging of PL/SQL and the running of Database Reports. SQL Developer has been developed in the JDeveloper IDE and works with any Oracle database 9.2.0.1 or later. It is installed simply by unzipping the downloaded file. The functionality of the product includes: Creating, storing, importing and exporting database connections Creating and browsing users Browsing database objects using a tree based browser Creating database objects Querying and updating data using a grid interface Running SQL statements and scripts Entering, running and debugging PL/SQL In-built and custom Reporting
Interface
You will operate SQL Developer using the following features: Use the Navigator pane on the left hand side of the screen to locate and select objects. Use the right mouse menu to display context sensitive actions. Use the tabbed panes on the right side of the screen to display information about objects and to enter SQL and PL/SQL statements. Click on a tab to display its information. To close a tab, place your mouse cursor over the tab and click on the X that is displayed. Double click on a tab to maximise. (Double clicking again returns to its previous state.) Drag the boundaries between panes to change their sizes. Optionally display the message area at the bottom of the screen (using the menu option View, Log) Optionally display the Help Centre on the right of the screen (by selecting options from the Help menu).
Page: 9
Note that this describes the default interface. The SQL Developer interface can be customised using a series of preferences (using the menu option Tools, Preferences). You can also dock the panes in different positions by dragging the tabs to a new location. SQL Developer is expected to be included in JDeveloper post release 10.1.3.
Help
Help Centre
The Help Centre Area with in SQL Developer allows you to access all help information, as well as perform a full text search. To display the Help panel, select Help from the menu and then select the type of help you require, either: Table of Contents, Full Text Search or Index. You can which between these by using the tabs at the bottom of the Help Centre.
Page: 10
Database Connections
Before you can use SQL Developer to access information from an Oracle database you must create a connection. A connection specifies which database you are connecting to and the username you will use to connect.
Set up
The hands on sessions which follow assume that you have followed the set up instructions provided, and have access to the product and the HR schema. If you have any problems with the hands on exercises please ask the presenter for assistance.
Page: 11
2. In the New/Select Database Connection Window enter the following information. Enter sage_hr as the connection name, hr for the username and hr for the password. hr is the default password for the hr user but may be different for your instance of the hr schema. Enter your machine name for the Hostname and the Port and SID in the basic tab as in the example below.
Page: 12
The Status above the Help button should show Success. Once you have a successful test click the Connect button to save the new connection. 3. You should now see the sage_hr connection in the Connections tab on the left of the SQL Developer application. Expand the sage_hr connection, by clicking on the plus sign to its left, to display the list of database object types within your hr schema.
When a connection is opened a SQL Worksheet is automatically displayed for the connection. A SQL Worksheet allows you to execute SQL against the database connection you have just opened. You can also open a new SQL Worksheet by clicking Tools and then SQL Worksheet. 4. SQL Developer allows you to perform a series of operations on a database connection including modifying and renaming a connection and invoking a SQL*Plus session. These options can be accessed by right clicking on the connection and selecting the required operation.
Page: 13
More on Connections
Modifying Database Connections
The properties of a Database Connection can easily be updated by right clicking on the appropriate connection and selecting Properties from the context menu.
The properties of all connections can be managed through this dialog box and details such as Username, Password, Hostname and SID can be modified.
Connection Details
The new connection can be tested via the Test button, then saved by clicking the Connect button.
Page: 14
The Export Connection Descriptors dialog allows you to specify which connections you wish to export, as well as the location and the name of the XML file.
In the same way, first invoke the Import Connection Descriptors from the context menu, then specify the import file and select the connections from that file to import into SQL Developer.
Page: 15
The first time this is completed a dialog will be displayed asking you to specify the location of the SQL*Plus executable.
Page: 16
2. Select the COUNTRIES table from the list and you will see a new Tab appear next to your SQL Worksheet, showing you the table definition for the COUNTRIES table.
There are a series of Tabs showing Data, Indexes, Constraints and other information related to the selected table.
Page: 17
3. Select the Data tab to view all rows of data stored in the selected COUNTRIES table.
5. You can now click on the Commit Changes toolbar button to save your changes, or the Rollback Changes toolbar button to discard them. Discard (Rollback) your changes. 6. Select the Constraints tab to view all constraints for this table and their details.
We can see from the constraints tab that three constraints exist including a Foreign Key constraint showing the Master Detail relations between the REGIONS and COUNTRIES tables.
Page: 18
7. SQL Developer also shows us, under the SQL tab, the code required to create the table as it currently exists in the database.
Page: 19
2. Enter a name of ADDRESS_ID, in the Type pop-list select NUMBER, followed by a Precision of 6 and then tick the Cannot be NULL checkbox. When the column details are defined click the Add Column icon.
3. Add the following columns using the same process with the bellow details. Column Name
ADDRESS_ID ADDRESS_TYPE ADDRESS_LINE1 ADDRESS_LINE2 CITY STATE COUNTRY POSTCODE EMPLOYEE_ID
Type
NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER
NULL No No
No
Page: 20
4. Click on the Primary Key tab and then select ADDRESS_ID as the primary key column.
A before insert trigger is created with the table to populate the primary key
A sequence will be created with the table for the primary key.
5. Then select ADDRESS_ID from the Populate Primary Key Column list and New Sequence as the method. Click on the Foreign Keys tab.
Page: 21
7. Change the Reference Table to EMPLOYEES, the referenced constraint should change to EMP_EMP_ID_PK. Then change the local column to EMPLOYEE_ID.
Page: 22
8. Before we create the ADDRESS table we will first review the SQL that has been generated by the Create Table dialog. Click on the DDL tab to display the SQL that was generated.
In the DDL tab you can see the SQL script that will create the table, primary key constraint, foreign key constraint, sequence and trigger to populate the primary key. Review this code before clicking OK to create the table. Review the Connections Navigator and check that the ADDRESSES tables, sequence and trigger have all been created correctly.
Page: 23
2. The Edit Table dialog will appear. You will see that it is in the same format and layout as the Create table dialog. We will now create a simple check constraint to restrict the ADDRESS TYPE column. Click the Check Constraints tab and click add.
Page: 24
4. Click on the DDL tab to review the statement that will be executed to modify the table.
5. Click OK. Now go to the ADDRESSES table browser and check the Constraints tab to ensure the constraint has been created correctly.
Page: 25
A dialog box will appear to allow you to review the SQL to be performed and confirm that you wish to continue. Click Apply to execute the drop statement. Note the drop feature for a table is located under the Table menu of the context menu.
Page: 26
Structure
SQL command words (Select, Insert, etc.) cannot be written over more than one line; however the entire statement may span one or more lines. For readability and maintainability it is suggested that individual clauses are placed on separate lines. SQL commands are not case sensitive. Any character data which you reference in a command is case sensitive. (If its in quotes its case sensitive). If you are entering multiple SQL statements in the SQL Developer worksheet you should terminate each statement with a semicolon.
To select all of the columns in a table, an * can be specified. Example: SELECT FROM * jobs;
Page: 27
In addition to viewing column data, columns can be combined with other columns and literals into an expression. The following standard arithmetic operators can be used to achieve this:
+ * /
Example:
In this example the job_title is being selected. However, as part of this select statement, we are also working out the difference between maximum and minimum salary.
A column alias is a method of giving an item in the select list a different name in the returned data. The alias will be used as the column header instead of the column name. This is particularly useful when selecting expressions. The alias follows the column or expression. Additionally, the word as can be included between the expression and alias.
Examples:
Example 1:
Page: 28
The rows returned by the select statement can be restricted by adding a WHERE clause. SELECT FROM WHERE column1, column2, column3 tablename boolean expression;
If the boolean expression evaluates to TRUE the row will be included in the results set. If the boolean expression evaluates to FALSE or UNKNOWN the row will not be included in the results set. The boolean expression can involve any of the columns in the table as well as literals. A column can be compared with another column or expression. Equality comparisons or ranges can be used (<, >, <=, >= ). Multiple clauses using AND or OR can be used. If AND and OR are combined then the AND conditions will be evaluated first. Note that a column alias cannot be referenced in the WHERE clause.
Examples:
Example 1: SELECT FROM WHERE Example 2: SELECT FROM WHERE AND street_address, postal_code, city locations country_id = UK state_province = Oxford; street_address, postal_code, city locations state_province = 'New South Wales';
Example 3: SELECT FROM WHERE OR street_address, postal_code, city locations country_id = UK country_id = AU;
Page: 29
Ordering the Data The order in which rows are returned can be defined by adding an ORDER BY clause. By default the rows will be in ascending order of the specified column. Add the keyword DESC to return rows in descending order of the columns or expression specified in the ORDER BY clause. Columns in the ORDER BY clause do not have to be included in the SELECT list.
Examples:
Example 1: SELECT FROM ORDER BY Example 2: SELECT FROM ORDER BY first_name, last_name, salary employees salary, hire_date DESC country_id, street_address, postal_code, city locations country_id;
Page: 30
Group Functions
Group functions work on sets of rows and return a single value for the set. SUM To select the sum of values in a set of columns use SUM(numcolumn) Example Select the total cost for all bookings: SELECT FROM SUM(salary) employees;
COUNT To select the number of non empty (NOT NULL) columns in a set of columns use COUNT(column) Example Select the number of employees that have a commission SELECT FROM COUNT(commission_pct) employees;
Grouping the Output into Sets of Rows Group functions work on sets of rows and return a single value for each set. Rather than grouping all the rows into a single set, the results can be divided into a number of sets using the GROUP BY clause Example Select the total salary for all employees in each department SELECT FROM GROUP BY department_id, SUM(salary) employees department_id;
Page: 31
Joins
So far we have selected information from one table only in each statement. In the following section we will select from multiple tables using join conditions.
Foreign keys
Tables are usually joined where a primary key / foreign key relationship exists between them.
Example:
COUNTRIES(country_id, country_name, region_id) LOCATIONS(location_id, street_address, postal_code, city, state_province, country_id)
In order to display the country name for a location, rows would be required where the country_id in the LOCATIONS table matches the country_id in the COUNTRIES table. It is important to understand the structure of the tables from which the selections are being made. The names of the columns do not have to be the same in both tables.
N.B. Omitting the join condition will result in a cartesian product resulting in each location row being joined to each country row. Using a Table Alias If there are column names that are common to both of the tables, it is necessary to prefix the column with the table name or a table alias. A table alias is a method of referring to a table using a short name. In the example above the table alias for COUNTRIES is c, the table alias for LOCATIONS is l.
Page: 32
Execute Statemen t
Commit
Cancel
Page: 33
2. With a correct statement, the results should display under the Results tab below. The worksheet also displays the time the statement took to execute in the toolbar. In this case, 0.05 seconds.
The number of rows returned is also displayed in the status bar. If the status bar is not displayed, you can make it visible by clicking the View menu, then selecting Status Bar. Note: SQL Developer also allows you to drag and drop columns from the Connections Navigator into the SQL work area instead of typing them in. You can test this drag and drop feature if you wish.
Page: 34
3. We now want to restrict the rows being returned from the query and only display departments from a specific location. This is achieved by adding a WHERE clause to the select statement. Add a WHERE clause to the end of this statement to only display DEPARTMENTS with a LOCATION_ID of 1700 and then execute the query.
Use the Format SQL feature from the SQL Worksheet's right mouse button context menu to make complex statements easier to read.
Page: 35
4. Next we will use an aggregate function to calculate the total salary for all employees. SQL Developer provides a Snippets panel which can be accessed from the View menu or at the right hand side of the application window. Snippets are code fragments you can use by dragging and drop them into your SQL Worksheet. They range from SQL functions and PL/SQL programming techniques to optimizer hints and examples. Enter a SELECT statement into your worksheet for the sage_hr connection to calculate the total salary for all employees in the EMPLOYEES table. You can use the Snippets panel to search for an appropriate function.
Take some time to explore and test the other snippets available in SQL Developer.
Page: 36
5. Lastly we want to display the combined salaries of all employees for each department. This query requires an aggregate function as used above, a join between two tables and a GROUP BY clause. We need to use a foreign key join between the employees and departments tables by including a WHERE clause. We then also need to include a GROUP BY clause to display the SUM for each department.
Page: 37
These stored statements can be retrieved at anytime and reused. They can be used to replace the text, or be appended to the current text in the SQL Worksheet. The filter at the top of the dialog box provides a case sensitive search feature for the SQL History. The history can be cleared using the Clear button.
Page: 38
2. The Create Procedure dialog will display. With the HR schema selected, enter top_salaries as the procedure name and add a parameter pNum NUMBER and click OK.
3. The procedure skeleton is created and displayed in a tab window. Replace the BEGIN; NULL; END; code with the following and then click the save icon to compile the procedure.
CURSOR c_top_sal IS SELECT e.employee_id, e.last_name, e.salary FROM employees e ORDER BY salary DESC; r_top_sal c_top_sal%ROWTYPE; i NUMBER :=1; BEGIN
Page: 39
INTO r_top_sal;
WHILE(c_top_sal%FOUND) AND (i <= pnum) LOOP i := i + 1; DBMS_OUTPUT.PUT_LINE(r_top_sal.employee_id || ' ' || r_top_sal.last_name || ' ' || r_top_sal.salary); FETCH c_top_sal INTO r_top_sal; END LOOP; CLOSE c_top_sal; END top_salaries;
4. The Compiler log in the bottom panel shows an error, you will also notice that under the Procedures node in the Connections Navigator, a red cross is displayed against the procedure. Double click on the error in the log to navigate to the error line.
5. A semi-colon is missing from the OPEN cursor line. Fix the error and then click the Compile icon. The procedure compiled successfully and is ready to be executed.
Page: 40
Page: 41
2. The run PL/SQL dialog will be displayed. Change the value of the pNum parameter in the execution block to 5. Click OK to close the dialog and execute the procedure.
3. The Log panel at the bottom of the SQL Developer Window shows the results of the procedure including the 5 top salaries.
4. With your TOP_SALARIES procedure open in the Source tab, click in the border next to your OPEN cursor statement to place a breakpoint.
Page: 42
5. Click Compile for Debug from the TOP_SALARIES source tab toolbar and then click the ladybug icon to debug the procedure. In the debug PL/SQL dialog, enter 5 for the value of pNum and then click ok.
6. The debugger-log will display, as well as the Smart Data, Data and Watches tabs. You can now use the debugger toolbar to step through the procedure and determine how the data and parameters change.
Page: 43
Data tabs Debug Toolbar 7. Step into the procedure and stop at the DBMS_OUTPUT.PUTLINE statement. Check the cursor record data in the Data tab. You can change the values by double clicking to display the Modify Value dialog.
Page: 44
8. Change the salary in the dialog and click OK. Click the Resume button from the Debugging Log toolbar to execute the rest of the procedure. In the Debugging Log panel you will see your results including the value you changed at runtime in the debugger.
Page: 45
5 Hands On Reports
SQL Developer provides an array of reports that you can execute at any time. The pre-defined Data Dictionary Reports allow you to analyse database information ranging from Security to Data storage. SQL Developer also allows you to create and save your own reports.
2. Expand the About your Database node and select the Version Banner Report. You will be asked to select the connection you wish the report to run against. Select our sage_hr connection and then click OK.
3. A simple report is displayed containing information about the database with which your connection is associated.
Page: 46
4. Next expand the Table node underneath, and select the User Tables report. This Report will display information about the tables owned by the user. An Enter Bind Values dialog will display.
5. Click NULL to remove the tick and enter E in the value field. Click Apply to run this report and limit the results to table names containing an uppercase E.
6. Review the information in the report and then click the Run Report in SQL Worksheet icon to display the SQL statement in the SQL Worksheet. In the Statement area you can see the query details which will be executed to produce the report.
Page: 47
2. Enter a Folder Name of HR Reports and a meaningful description then click Apply.
The new folder should be displayed in the Reports navigator under User Defined Reports. 3. Right click on the HR Reports folder and select Add Report from the Context menu. In the Create Report Dialog enter a Report name and description as in the following screen. Then enter the SQL statement you performed earlier in the Using the SQL Worksheet to perform SQL statements hands-on session, to display the total salaries for each department. You can enter this manually or retrieve it from the SQL History within your SQL Worksheet.
4. Add an Alias as in the following screen to each of the columns to improve the appearance and readability of the report when it displayed. Click Apply.
Page: 48
5. The report will be displayed under your folder. Click the report and then select sage_hr as the connection for the report to be executed. Click OK.
Your user defined reports can be found in the following directory. Windows C:\Documents and Settings\<user-name>\.sqldeveloper\UserReports.xml Linux or Mac OS X ~/.sqldeveloper/UserReports.xml
Page: 49
2. Next run your report with the extra WHERE clause. The Enter Bind Values dialog will appear. You can run the report without entering a variable by clicking Apply or de-select the NULL checkbox and enter the name of a department such as SALES to restrict the report.
3. Click Apply.
The displayed report will contain only the Sales Departments details.
Page: 50