Formatting Object Columns
Oracle8 introduced objects to Oracle's relational database world.
You can define object types that you can then use as datatypes for
columns in a relational table. The following example shows an object
type named employee_type
, as well as
an employees
table that contains an
object column named employee
. The
employee
column stores employee_type
objects.
SQL>DESCRIBE employee_type
Name Null? Type ------------------------------- -------- ---- EMPLOYEE_NAME VARCHAR2(40) EMPLOYEE_HIRE_DATE DATE EMPLOYEE_SALARY NUMBER(9,2) SQL>DESCRIBE employees
Name Null? Type ------------------------------- -------- ---- EMPLOYEE_ID NUMBER EMPLOYEE EMPLOYEE_TYPE
When you select from this table using SQL*Plus, the employee
object is treated as one database
column, which in fact it is. The attributes of the employee
object are displayed in
parentheses:
SQL> select * from employees;
EMPLOYEE_ID
-----------
EMPLOYEE(EMPLOYEE_NAME, EMPLOYEE_HIRE_DATE, EMPLOYEE_SALARY)
------------------------------------------------------------------
111
EMPLOYEE_TYPE('Taras Shevchenko', '23-AUG-76', 57000)
110
EMPLOYEE_TYPE('Ivan Mazepa', '04-APR-04', 67000)
112
EMPLOYEE_TYPE('Igor Sikorsky', '15-NOV-61', 77000)
This output looks messy. You can tidy it up a bit by formatting
the two columns so both fit on one line. As far as SQL*Plus is
concerned, only two columns exist: employee_id
and employee
. Here's an example that formats the
columns somewhat better:
SQL> COLUMN employee FORMAT A60 HEADING 'Employee ...
Get Oracle SQL*Plus: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.