Commit cb364d93 authored by podesign's avatar podesign

- added SQL for Web Nerds

parent 8bfc13f3
<HTML>
<HEAD>
<LINK REL=STYLESHEET HREF="/books/philg.css" TYPE="text/css">
<TITLE>Afterword</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<table>
<tr>
<td>
<a href="http://www.photo.net/photo/pcd1641/striped-butt-90.tcl"><img HEIGHT=134 WIDTH=196 src="http://www.photo.net/photo/pcd1641/striped-butt-90.1.jpg" ALT="Striped butt."></a>
<td>
<H2>Afterword</H2>
part of
<a
href="index.html">SQL for Web Nerds</a>
by <a href="http://philip.greenspun.com/">Philip Greenspun</a>
</tr>
</table>
<hr>
<a href="http://www.photo.net/photo/pcd0800/citroen-in-florence-37.tcl"><img hspace=5 vspace=5 align=right HEIGHT=198 WIDTH=132 src="http://www.photo.net/photo/pcd0800/citroen-in-florence-37.1.jpg" ALT="A Citroen in a Florence side street"></a>
Congratulations: You've learned SQL. You can tap into the power of the
relational database management system for concurrency control and
transaction management. This power is useful for almost any activity in
which computers are employed.
<p>
If you aren't already saddled with a job, I encourage you to think about
building Web services for collaboration, which I think are the most
valuable things that we nerds can give to society. To that end, I wrote
<cite>Philip and Alex's Guide to Web Publishing</cite>, available at
<a href="/panda/">http://philip.greenspun.com/panda/</a> and more
recently <cite>Software Engineering for Internet Applications</cite>, at
<a href="/seia/">http://philip.greenspun.com/seia/</a>
<hr>
<a href="http://philip.greenspun.com/"><address>philg@mit.edu</address></a>
<center><a href="/comments/add?page_id=3593">Add a comment</a> | <a href="/links/add?page_id=3593">Add a link</a></center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-315149-1";
urchinTracker();
</script></body></HTML>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<HTML>
<HEAD>
<LINK REL=STYLESHEET HREF="/books/philg.css" TYPE="text/css">
<TITLE>Appendix B: Getting Real Work Done with Oracle</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<table>
<tr>
<td>
<a href="http://www.photo.net/photo/pcd3562/hoc-10.tcl"><img HEIGHT=198 WIDTH=132 src="http://www.photo.net/photo/pcd3562/hoc-10.1.jpg" ALT="Head of the Charles Regatta, Sunday, October 18, 1998. From the footbridge to Harvard Business School"></a>
<td>
<H2>Appendix B: Getting Real Work Done with Oracle</H2>
by <a href="http://philip.greenspun.com/">Philip Greenspun</a>, part of
<a
href="index.html">SQL for Web Nerds</a>
</tr>
</table>
<hr>
Consider John Q. Nerd with his bona fide SQL expertise and MIT PhD. How
much useful work can John get out of Oracle? None. John Q. Nerd only
knows how to drive Oracle from SQL*Plus. This appendix covers the
little details such as getting data into or out of Oracle. It is
organized as an FAQ.
<h3>How do I get data into Oracle?</h3>
<ul>
<li>Answer 1: Start up SQL*Plus. Type really fast.
<br>
<br>
<li>Answer 2: If you need to load 1000+ rows per second, a fairly common
requirement in the data warehousing world, read the Oracle8 Server
Utilities, <a
href="http://www.oradoc.com/keyword/sql_loader">SQL*Loader section</a>.
<br>
<br>
<li>Answer 3: If SQL*Loader makes you feel like ripping out what's left
of your hair, go with Perl DBD/DBI (a module available from
<a href="http://www.cpan.org">http://www.cpan.org</a>; explanation
available in <a
href="http://www.amazon.com/exec/obidos/ASIN/1565922204/pgreenspun-20"><cite>Advanced
Perl Programming</cite></a> (Srinivasan 1997; O'Reilly).
<br>
<br>
<li>Answer 4: If your data are imprisoned in another RDBMS, consider
using a fancy GUI tool such as Data Junction (<a
href="http://www.datajunction.com">http://www.datajunction.com</a>).
These are PC-based applications that open simultaneous connections to
your Oracle database and some other RDBMS. They can generally show
you what's available in the other database and drag whatever you think
necessary into Oracle.
<br>
<br>
<li>Answer 5: If your data are in another Oracle database, read up in
the Oracle Server Utilities manual about
<code>exp</code>
and <code>imp</code></a>
(<a
href="http://www.oradoc.com/keyword/export_import">http://www.oradoc.com/keyword/export_import</a>).
<br>
<br>
<li>Answer 6: If your data are coming in from an email message,
configure your mailer to fork a Perl DBD/DBI script that will then parse
out the content from the headers and other such crud, open up Oracle,
and then send an insert statement. Due to the fork and the opening of
Oracle, this is 1/100th the efficiency of a Web script running in a
threaded Web server with database connection pooling. However, you
probably won't be getting 40 email messages per second so it doesn't
really matter. The old open-source ArsDigita Community System includes
a Perl script that you could use as a starting point.
See <a
href="/ancient-history/software/acs-3.4.10.tar.tgz">http://philip.greenspun.com/ancient-history/software/acs-3.4.10.tar.tgz</a>
for details.
</ul>
<h3>How do I get data out of Oracle?</h3>
<ul>
<li>If you want to publish data on the Web, look at the approaches
articulated in <cite>Philip and Alex's Guide to Web Publishing</cite>,
Chapter 13 (<a href="/panda/databases-interfacing">http://philip.greenspun.com/panda/databases-interfacing</a>).
<br>
<br>
<li>If you are sending data to another Oracle installation, use <code>exp</code>,
documented in the Oracle8 Server Utilities manual,
<a
href="http://www.oradoc.com/keyword/export_import"><code>exp</code>
and <code>imp</code> section</a>.
</ul>
<hr><a href="http://philip.greenspun.com/"><address>philg@mit.edu</address></a><center><a href="/comments/add?page_id=3514">Add a comment</a></center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-315149-1";
urchinTracker();
</script></body></HTML>
<html>
<head>
<TITLE>SQL for Web Nerds</TITLE>
</head>
<body bgcolor=#ffffff text=#000000>
<table>
<tr>
<td>
<a href="http://www.photo.net/photo/pcd0865/nick-gittes-and-alex-107.tcl"><img HEIGHT=134 WIDTH=196 src="http://www.photo.net/photo/pcd0865/nick-gittes-and-alex-107.1.jpg" ALT="Nick Gittes and Alex. 1998."></a>
<td>
<h2>SQL for Web Nerds</h2>
by <a href="http://philip.greenspun.com/">Philip Greenspun</a>
</tr>
</table>
<hr>
<a href="http://www.photo.net/photo/pcd4229/alex-rope-13.4.jpg"><img hspace=5 vspace=5 align=right WIDTH=269 HEIGHT=268 src="http://www.photo.net/photo/pcd4229/alex-rope-13.2.jpg" ALT="Alex. Harvard Yard 1998."></a>
<blockquote>
<i>
This is a draft manuscript. Comments (emailed to
<a href="mailto:philg@mit.edu">philg@mit.edu</a>) would be welcome.
</i>
</blockquote>
<ol>
<a href="preface.html">Preface</a><br><br>
<li><a href="introduction.html">Introduction</a>
<li><a href="data-modeling.html">Data modeling</a>
<li><a href="queries.html">simple queries</a>: one table, one table with subquery, JOIN, JOIN with
subquery, OUTER JOIN
<li><a href="complex-queries.html">more complex queries</a>: GROUP BY, aggregates, HAVING
<li><a href="transactions.html">Transactions</a> (inserts and updates)
<li><a href="triggers.html">triggers</a>
<li><a href="views.html">views</a>
<li><a href="style.html">style</a>
<li><a href="procedural.html">escaping to the procedural world</a>: PL/SQL and Java executing inside
the Oracle server
<li><a href="trees.html">trees</a>
<li><a href="dates.html">handling dates in Oracle</a>
<li><a href="limits.html">limits</a> in Oracle; how they will bite you and how to work around them
<li><a href="tuning.html">tuning</a>, what to do when your query runs
too slowly
<li><a href="data-warehousing.html">data warehousing</a>, what to do
when your query doesn't answer your questions
<li><a href="foreign-and-legacy-data.html">foreign and legacy data</a>,
making foreign Web sites look like local SQL tables
<li><a href="normalization">normalization</a>
<br><br>
<a href="afterword.html">Afterword</a>
<br><br>
Appendix A: <a href="your-own-rdbms.html">Setting up your own RDBMS</a>
<br>
Appendix B: <a href="getting-real-work-done.html">Getting real work done
with Oracle</a>
</ol>
More:
<ul>
<li>the complete Oracle doc set is available online for registered (no
charge) users, as a link from
<href="http://www.oracle.com/">http://www.oracle.com/</a>; some
particularly interesting books are the <cite>Application Developer's Guide</cite> and
<cite>Concepts</cite>
<li> <a
href="http://www.amazon.com/exec/obidos/ASIN/0072225211/pgreenspun-20"><cite>Oracle
9i: The Complete Reference</cite></a>
</ul>
<hr>
<a href="http://philip.greenspun.com/"><address>philg@mit.edu</address></a>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-315149-1";
urchinTracker();
</script></body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment