📄 chap16_3.html
字号:
<HTML><HEAD><TITLE>Oracle8 How-To</TITLE><SCRIPT><!--function displayWindow(url, width, height) { var Win = window.open(url,"displayWindow",'width=' + width +',height=' + height + ',resizable=1,scrollbars=yes');}//--></SCRIPT></HEAD><BODY BACKGROUND="../../../images/curve_itlibrary_white.gif" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#DD0000" VLINK="#999999" ALINK="#FF0000"><!--Begin Header Table --><TABLE width="640" cellpadding="0" cellspacing="0" border="0"><TR><TD VALIGN="TOP" WIDTH="640" COLSPAN="3"><A HREF="http://www.earthweb.com" target="resource window"><IMG SRC="../../../images/eweb_banner.gif" VSPACE="6" WIDTH="640" HEIGHT="25" ALT="Brought to you by EarthWeb" border="0"><BR></a></TD></TR><TR><TD VALIGN="TOP" WIDTH="150"><A HREF="http://www.itlibrary.com/"><IMG SRC="../../../images/small_logo.gif" WIDTH=103 HEIGHT=82 ALT="IT Library Logo" border="0"></a><P><!--Begin Subscribe Box Table --><TABLE border="0" cellpadding="0" cellspacing="0" WIDTH="100"><TR><TD></TD></TR></TABLE><!--End Subscribe Box Table --></td><TD><img src="../../../images/dotclear.gif" WIDTH="15" HEIGHT="1"></TD><TD><!-- Begin Ads itl //--><a href="http://www.itlibrary.com/adclick.html/CID=00000349829b438e00000000/site=itlibrary/area=itl/aamsz=468x60" TARGET="new win"><img src="../../../../adimages.earthweb.com/images/ads/spidercatcher.gif@10303" ALT="Click Here!" border="0"><BR><CENTER>Click Here!</CENTER></a><!-- itl End Ads //--></td></TR></TABLE><!--End Header Table --><!--Begin Main Table --><TABLE width="640" cellpadding="0" cellspacing="0" border="0"><TR><!--Begin Left Navigation column --><TD VALIGN="TOP" WIDTH="140"><FORM action="/subscribe/list.cgi" method="post"><INPUT name='email' value='your e-mail' size="11"><INPUT type='hidden' name='state' value='Subscribe'><br><INPUT type='image' value='subscribe' img src='/images/subscribe.gif' border='0' vspace='3' ></center></form><form name="Search" method="GET" action="http://search.earthweb.com/search97/search_redir.cgi"><INPUT TYPE="hidden" NAME="Action" VALUE="Search"><INPUT TYPE="hidden" NAME="SearchPage" VALUE="http://search.earthweb.com/search97/samples/forms/srchdemo.htm"><INPUT TYPE="hidden" NAME="Collection" VALUE="Site Index"><INPUT TYPE="hidden" NAME="ResultTemplate" VALUE="itl.hts"><INPUT TYPE="hidden" NAME="ViewTemplate" VALUE="view.hts"></font><table width=130 border=0 cellpadding=0 cellspacing=0><tr><td><font face="arial, helvetica" size=2 color="white"><b>Search the site:</b></font><br><INPUT NAME="queryText" size=8 VALUE=""> <input type="submit" name="submitbutton" value="Go!"></td></tr><INPUT type=hidden NAME="section_on" VALUE="on"><tr><td><SELECT NAME="section" size=1><option value="../../../../www.itlibrary.com/default.htm" SELECTED>ITLibrary<option value="../../../../www.itknowledge.com/default.htm">ITKnowledge</SELECT><a href="http://www.itlibrary.com/search/"><font face="arial, helvetica" color=FFFFFF size=1>EXPERT SEARCH</a></font><IMG src="../../../images/rule.gif" width="100" vspace=3 height="2" ALT="-----"></form></td></tr></table><table bgcolor="#cc9900" cellpadding="0" cellspacing="0" border="0" width=110><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><b><a href="http://www.itlibrary.com/reference/dir.programminglanguages.html"><font face="verdana,helvetica" size="1" color="000000">Programming Languages</font></a></b></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.databases.html"><font face="verdana,helvetica" size="1" color="000000"><b>Databases</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.security1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Security</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.webservices.html"><font face="verdana,helvetica" size="1" color="000000"><b>Web Services</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.networkservices1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Network Services</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.middleware.html"><font face="verdana,helvetica" size="1" color="000000"><b>Middleware</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=12 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.components.html"><font face="verdana,helvetica" size="1" color="000000"><b>Components</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.operatingsystems.html"><font face="verdana,helvetica" size="1" color="000000"><b>Operating Systems</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.userinterfaces.html"><font face="verdana,helvetica" size="1" color="000000"><b>User Interfaces</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.groupwareandcollaboration1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Groupware & Collaboration</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.contentmanagement.html"><font face="verdana,helvetica" size="1" color="000000"><b>Content Management</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.productivityapplications1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Productivity Applications</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.hardware1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Hardware</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.funandgames1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Fun & Games</b></font></td></tr></table><!-- <IMG SRC="/images/leftnav.gif" WIDTH=111 HEIGHT=404 ALT="nav" border="0" ISMAP USEMAP="#leftnav"> --><p><a href="http://www.earthweb.com/jobs/" target=new><IMG SRC="../../../images/dice-105x30.gif" WIDTH=105 HEIGHT=30 ALT="EarthWeb Direct" border="0"></a><a href="http://www.earthwebdirect.com/" target=new><IMG SRC="../../../images/earthwebdirect.gif" WIDTH=105 HEIGHT=30 ALT="EarthWeb Direct" border="0"></a><a href="http://www.fatbrain.com/home.html?from=UUX592" target=new><IMG SRC="../../../images/fatbrain.gif" WIDTH=105 HEIGHT=30 ALT="Fatbrain" border="0"></a><a href="http://auctions.earthweb.com" target=new><IMG SRC="../../../images/auctions_105x30.gif" WIDTH=105 HEIGHT=30 ALT="Auctions" border="0"></a><a href="http://www.supportsource.com" target=new><IMG SRC="../../../images/ss2000sneak2.gif" WIDTH=105 HEIGHT=30 ALT="Support Source Answers" border="0"></a><P><b><font face="verdana,helvetica" size="2">EarthWeb sites</FONT></b><br> <FONT SIZE="1"> <a href="http://www.crossnodes.com"><font face="verdana,helvetica" size="1" color="000000">Crossnodes</font></a><br> <a href="http://www.datamation.com"><font face="verdana,helvetica" size="1" color="000000">Datamation</font></a><br> <a href="http://www.developer.com"><font face="verdana,helvetica" size="1" color="000000">Developer.com</FONT></A><br> <a href="http://www.dice.com"><font face="verdana,helvetica" size="1" color="000000">DICE</font></a><br> <a href="http://www.earthweb.com"><font face="verdana,helvetica" size="1" color="000000">EarthWeb.com</font></a><br> <a href="http://www.earthwebdirect.com"><font face="verdana,helvetica" size="1" color="000000">EarthWeb Direct</font></a><br> <a href="http://www.erphub.com"><font face="verdana,helvetica" size="1" color="000000">ERP Hub</font></a><br> <a href="http://www.gamelan.com"><font face="verdana,helvetica" size="1" color="000000">Gamelan</font></a><br> <a href="http://www.gocertify.com"><font face="verdana,helvetica" size="1" color="000000">GoCertify.com</font></a><br> <a href="http://www.htmlgoodies.com"><font face="verdana,helvetica" size="1" color="000000">HTMLGoodies</font></a><br> <a href="http://www.intranetjournal.com"><font face="verdana,helvetica" size="1" color="000000">Intranet Journal</font></a><br> <a href="http://www.itknowledge.com"><font face="verdana,helvetica" size="1" color="000000">IT Knowledge</font></a><br> <a href="http://www.itlibrary.com"><font face="verdana,helvetica" size="1" color="000000">IT Library</font></a><br> <a href="http://www.javagoodies.com"><font face="verdana,helvetica" size="1" color="000000">JavaGoodies</font></a><br> <a href="http://www.jars.com"><font face="verdana,helvetica" size="1" color="000000">JARS</font></a><br> <a href="http://www.javascripts.com"><font face="verdana,helvetica" size="1" color="000000">JavaScripts.com</font></a><br> <a href="http://www.opensourceit.com"><font face="verdana,helvetica" size="1" color="000000">open source IT</font></a><br> <a href="http://www.roadcoders.com"><font face="verdana,helvetica" size="1" color="000000">RoadCoders</font></a><br> <a href="http://www.Y2Kinfo.com"><font face="verdana,helvetica" size="1" color="000000">Y2K Info</font></a></FONT></td><!--End Left Navigation column --><!-- spacer column --><TD width="40"><img src="../../../images/dotclear.gif" WIDTH="40" HEIGHT="1" border=0></TD><!--Begin Content Column --><TD VALIGN="TOP" width="500"><P><blockquote><p><b><font size="+1">16.3 How do I匔reate and use object tables?</font></b><p><B>Problem</B><p>I have created some relational tables containing column objects. If I reuse an object type definition as a column in other relational tables, then I will store the same data in more than one place. This seems inefficient and may adversely effect data integrity. How can I avoid these problems and still make use of Oracle8抯 object extensions?<P><B>Technique</B><p>How-To 16.1 introduced a relational table called EMP16 with an embedded object type called DEPT_TYPE16 to store three department attributes. Suppose that the organization of interest has some limited resource, say a set of graphics workstations, and management wants to maintain a record of which departments have received a share of this resource. In this case, it makes sense to enhance the corporate database to include a table containing workstation numbers and the departments where the graphics machines reside. The script in Listing 16.1 will do this.<P>Listing 16.1 A script to create a table called WORKSTN_LOC<p><code><b>SQL> CREATE TABLE workstn_loc16<p>2 ( workstn_number number(4),<p>3 dept dept_type16><p>4 );</b></code><p>Now the table EMP16 and the table WORKSTN_LOC16 both contain the DEPT_TYPE16 object type as an embedded object. There must be a way to duplicate the functionality of foreign key constraints without introducing this redundancy, right?<p>Right. The place to start is with an object table. An object table is a table where each row is an instantiation of an object type. Other objects, like relational tables, can point to the rows of an object table through the Oracle8 REF operator. The single argument to this operator is a table alias of a row table; the operator returns the object ID of the requested row.<p><B>Steps</B><p><B>1.</B> Start SQL*Plus, connect as the WAITE user, and use the START command to load and execute the script CHP16_6.SQL. This single line script and its output appear in <A HREF="image/16oht06.gif" TARGET="_blank">Figure 16.6</A>.<p>The script creates an object table called DEPTS16.<p><B>2.</B> Use the START command to load and execute the script CHP16_7.SQL. The script and its output appear in <A HREF="image/16oht07.gif" TARGET="_blank">Figure 16.7</A>.<p>This script creates a new version of the EMP16 table. This table differs from the earlier version of EMP16 only through the datatype of the DEPT column. Here, the DEPT column is a reference (or pointer) to an object of type DEPT_TYPE16.<p>Note-REF datatypes are more strongly typed than other datatypes in that they will only accept pointers to objects of one type.<p><B>3.</B> Add a few rows to the DEPTS16 table by using the START command to load and execute the script CHP16_8.SQL. The script and its output appear in <A HREF="image/16oht08.gif" TARGET="_blank">Figure 16.8</A>.<p>Notice that the first insert statement uses standard SQL syntax and that the second statement uses the constructor method for the DEPT_TYPE16 object type.<p><B>4.</B> Now add two employees to the EMP16 table by using the START command to load and execute the script in CHP16_9.SQL; <A HREF="image/16oht09.gif" TARGET="_blank">Figure 16.9</A> shows this script and its output.<p>The script uses two INSERT INTO匰ELECT FROM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -