Steven Feuerstein is the author of an impressive collection of Oracle PL/SQL documentation that includes Advanced Oracle PL/SQL Programming with Packages, Oracle Built-in Packages (with Charles Dye & John Beresniewicz), Oracle PL/SQL Built-ins Pocket Reference (with John Beresniewicz & Chip Dawes, and Oracle PL/SQL Programming, now in a second edition and considered to be a classic among PL/SQL programmers. Steven is an acknowledged PL/SQL guru who travels the globe lecturing and teaching at tradeshows and seminars. He writes articles for industry magazines and text books, and he's helped to create RevealNet PL/SQL Pipeline, a non-commercial online community for PL/SQL developers.
O'Reilly Web site editor Allen Noren caught up with Steven the day after he returned from Dublin, Ireland, and asked Steven what gets him excited about PL/SQL.
- Noren:
- What gets you excited about PL/SQL? The passion you seem to have for the
language really sets your books apart from so many other computer texts.
- Feuerstein:
- To be honest, I think what you are seeing is not so much a passion for
PL/SQL,
as much as it is a public display of my obsessive-compulsive personality.
Don't get me wrong. I like PL/SQL an awful lot. It is a very well designed
language; fortunately Oracle did not think they could build a programming
language better than everybody else. They "shopped around" for a language
they could copy and eventually chose Ada over PL/1. This Ada foundation
gives a depth and integrity to PL/SQL that is often lacking in the procedural
languages of competing database vendors, like Sybase's Transact-SQL and
Informix 4GL. Packages and exception handling, for example, make PL/SQL stand
out from the crowd (and stack up nicely against an even more modern language
like Java).
So, sure, PL/SQL is hot stuff. But mainly my brain likes to latch onto abstract problems and figure out ways to solve them. In fact, I like to tell my students that they should not think of themselves as programmers, but as problem solvers. It's not hard to learn the syntax and features of a computer language. They are much, much easier to learn than human languages -- because you use them to converse with a linguistically dumb entity: the computer. I bet lots of people think that computers are really smart. But they're not. They're mostly just fast. If they were smart, I could say to the PL/SQL compiler things like this:
BEGIN IF my_function THEN NULL; ENDIF; END;and the compiler would say to itself "Oh, he meant to put a space between the END and IF instead of ENDIF. I'll take care of that for my good old buddy Steven." But it doesn't, so the PL/SQL compiler is not particularly smart, and it's not my friend either.
Where was I (you can see how I have ended up writing over 2000 pages of published material on PL/SQL!)? Right, we are not programmers, we are problem solvers. You can learn all the syntax you want, but if you can't proceed step by step, logically, from the problem to a solution, well, I don't want to have to see the code you end up writing in your application!
So the things I really get excited about are: solving tough problems in the abstract, and also helping other developers enhance their skills, to learn how to take full advantage of the PL/SQL language.
- Noren:
- What can programmers DO with PL/SQL?
- Feuerstein:
- Actually, there's been lots of discussion inside Oracle Corporation the
last few years about just what PL/SQL should be and do for the development
community. This discussion arose because of the introduction of objects into
the Oracle database and the rise of Java.
PL/SQL stands for Procedural Language extensions to SQL, and that describes it very accurately: it is a database programming language. But when objects were added to Oracle (and PL/SQL was enhanced to support manipulation of those objects), this question naturally popped up: should PL/SQL become a true object-oriented language? Or should it continue to focus on providing a tight, efficient programming path to the Oracle database? Or should it, can it, do both?
And, in a way, Java has decided the issue for Oracle. Now that Java is moving into the database itself (with Oracle8i), Oracle doesn't have to feel pressured to transform PL/SQL into an O-O language. If you want to do object-oriented programming, use Java. If you want to write high-performance programs to work with the Oracle database, and you want to write them in the most productive, straightforward way possible, use PL/SQL.
- Noren:
- You make it sound as if the alignment with Java happened quite naturally.
Was that the case?
- Feuerstein:
- Well, I have to say that I am not privy, or at least haven't tried too hard
to become privy, to the internal politics at Oracle headquarters. I avoided
it like the plague when I was an employee (and it was a very political place
to work); and I sure don't want to spend my time keeping up with which
director has it in for which vice president. I know that there were some
very strong opinions being tossed about behind closed doors. There were and
probably are any number of people inside the company who felt that Java is
so wonderful, so extraordinary, that every other language should be
immediately dropped and all Oracle software rewritten in Java. Cooler heads
prevailed, fortunately, and we now have a very sensible parallel path strategy.
Was it a "natural" process? Well, I like to think that everything we humans do is natural, since we are a part of Nature, but that doesn't mean that what we do is not perverted in any number of ways (socially, ethically, environmentally, etc.). I believe that Larry Ellison decided early on that Java was strategic (both for technical reasons and Microsoft-bashing reasons) and pushed hard to reorient the company.
- Noren:
- You've just published your third book on PL/SQL, Oracle Built-in Packages.
Why did you take a year of your life to write that book (with co-authors
John B and Charles D)? Why should developers care about those packages?
- Feuerstein:
- First of all, a "built-in package" is a package that is created by Oracle
and installed in the database when you install PL/SQL. A package contains
one or more programs that allows you to perform certain actions. The beauty
of the built-in packages is that they provide a tightly controlled way for
Oracle to make available to PL/SQL developers all sorts of wonderful new
technology they have developed -- often originally solely for their own
purposes.
I could write for, well, 900 pages about all the great things you can do with built-in packages: Read/write operating system files, execute dynamically-constructed SQL and PL/SQL programs, parallelize program execution to reduce greatly elapsed time for applications, manipulate LOBs and RAW values, submit stored procedures for scheduled execution. I could go on and on.
The bottom line for me is that developers who build PL/SQL applications and do not use the built-in packages:
-
1. Will find themselves telling their managers and users that something
cannot be done, when in fact it most certainly can be.
2. Are limiting their skill-set and ability to excel (and thereby limiting their revenue generation capabilities) in the world of PL/SQL.
Many developers undoubtedly will get that first book, Oracle PL/SQL Programming, and think they have everything they need, but it just ain't so! I couldn't fit into a single book everything you need to know about PL/SQL -- and still include all the examples that people seem to appreciate deeply.
So I would strongly recommend that every single PL/SQL developer in the whole wide world buy a copy of Oracle Built-in Packages. And -- I am being perfectly honest here, really I am -- I would suggest that they buy that book even if it were written by someone else and published by another publisher. The information in it is that good, that crucial.
- Noren:
- Does that mean you'll be working on yet another book? Maybe a book of
examples, like
Java Examples in a
Nutshell?
- Feuerstein:
- Well, if it was up to my editor, I'd be working on three new books at
any given time. I'd be a full-time author, and I would hop on my
Harley-Davidson and cruise around the country visiting only independent
bookstores to hawk my texts, just like Stephen King. Only problem is I don't
own a Harley and I continue to remain thoroughly unconvinced that you can make
a stand-alone living as a technical writer. I think we've sold around 80,000
copies of
Oracle PL/SQL
Programming, making it a "best seller" in the computer world. But
those royalties just don't pay all the bills...yet!
Anyway, yes, it is true, that I am thinking about doing a book of examples, a kind of workbook, but I haven't made any commitments yet. I suppose that if after this interview is published, I am flooded with requests from my dear readers to provide such a book, I will be more likely to write it.
- Noren:
- You are seen as The guru of PL/SQL. How does that make you feel?
- Feuerstein:
- Well, heck, it makes me feel terrific! Everyone likes to be appreciated
and I
think I have that disease more than most: I want (need?) to be liked, and as a
result (and in the context of my work with PL/SQL) I go out of my way to help
and to explain the concepts behind programming techniques to my readers.
To be honest, I have also been very, very surprised by the response to my first book, Oracle PL/SQL Programming. I can't tell you the number of times I have received email, or students in my seminars have come up to me, with a story that goes something like this (actual quote):
"This is by far the best programming text I have ever read. The style you use is easy to follow, extremely smooth-flowing, and contains enough humor to keep me chuckling through every chapter.
After endless examples of alphabet soup, student_id, order_detail, etc., it does my little brain good to see 'Sam I Am' and winterizing task programming.
With every bit I learn from your book, I see how powerful PL/SQL is and how much fun it is to program in. Who'da thunk it? ...
I graduate in March and intend on landing a job in data base management as soon as possible. After 25 years of restaurant management, I kick myself for not pursuing this career earlier."
I do get tickled pink whenever anyone tells me that Oracle PL/SQL Programming is the best book on programming they have ever read. See, my background would not seem to have lent itself to the writing of such a text. I have very little formal education in programming. I took 3 different "101" computing classes in college: Algol, Lisp, and Pascal. I fell into a programming job at the University of Rochester and just sort of drifted around from one Fortran job to another, until I answered a headhunter's ad for a database-related position. Turned out to be a "pre-sales" technical consulting job with Oracle Corporation. I didn't know a thing about relational databases at the time, so I hunted down an article on Codd's 12 Rules for Relational Databases, memorized them, and went to my interview.
Of course, my future manager didn't ask about any of that stuff. In the true Oracle style, he wanted to find out if I had the raw smarts to do the job, and also whether I could handle making presentations to small and large groups. And at this point, I must admit, the whole experience got a big strange and wonderful all at once, because I found myself telling John of Oracle Corporation about my political organizing background and how I would give speeches to groups of several hundred people, at conferences and demonstrations.
Who would have thought that five years of actively protesting Ronald Reagan's war against the people of Central America (for which I was investigated illegally by the FBI) would help land me a job at Oracle Corporation? You couldn't write fiction as strange as that!
Well! So I got my job and learned PL/SQL and SQL*Forms and all that other good stuff, then left Oracle after five years to join the ranks of consultants. But to make a long story at least a little bit shorter, I thought I knew PL/SQL very well and in 1994 publishers were starting to very aggressively seek out authors for Oracle books. I thank my lucky stars that I ended up with O'Reilly (a truly wonderful, eclectic publisher with lots of personality) and a contract to write a book on PL/SQL.
At first I thought that I would have trouble coming up with 400 pages on the topic. After all, PL/SQL is such a straightforward language! Ha, ha, ha! 1,200 pages later we had to cut 400 pages out of the book to make it publishable in a single volume -- and I had discovered just how much of PL/SQL I had not known at the time. For example, prior to writing the book, I didn't know about packages, named notation, PRAGMAs and so much more.
I often tell students at my classes that if they really want to learn a technology, just write a book on it.
So I didn't come to the project (writing that first PL/SQL book) with lots of formal training, which resulted in a trade-off: I didn't have a lot of the buzzwords and theories down pat, but I also wasn't restricted by those theories. I could think about things in my own way, and offer my own, often very "creative" solutions. I also made no effort to exclude my somewhat bizarre sense of humor from my writing; I don't think I could have, if I wanted to. And my editor, Debby Russell, was always very supportive of my less than thoroughly technical content (though she did make a number of suggestions for cuts, for which I am thankful). The result is, according to many developers, a very accessible, readable book -- and as far as I can tell, we technical people are just desperate for books like that.
- Noren:
- Your personality and sense of humor aside, what makes you such a good
technical writer? What makes any technical writer good?
- Feuerstein:
- I think that it comes down to communication skills. You have to be able to
take technical content and make it interesting enough that people want to
read it and clear enough for them to understand what they are reading. This
means, of course, that you yourself have to understand the underlying
technology very well, and have thought through the kinds of issues your
readers may be addressing. From there, it seems to be very important to
include lots of examples in the text; people seem to learn by example much
more effectively than they learn by reading theories.
- Noren:
- Tell us about Oracle8 and Oracle8i. What do they mean for Oracle in
general, and PL/SQL in particular?
- Feuerstein:
- Oracle8i in particular looks interesting not only for its new PL/SQL
features (from autonomous transactions to a revamped and much faster
implementation of dynamic SQL), but also for iFS, the Internet File System.
Oracle is apparently going to give us a new option: forget about the
underlying operating system! You can do everything from within Oracle! I
haven't seen the details, but I can see how this could be very handy. I can
also see how this would really get under Bill Gates' skin, and that
does seem to be one of Larry Ellison's dominant motivations.
In the next six months, I will be taking a much closer look at all the new technology. I will be integrating what I learn into various products from RevealNet (such as PL/Vision and the PL/SQL Knowledge Base). I will also be coming up with a plan of action for modifying existing books or perhaps providing additional texts (much shorter, though, I promise!) to cover the new features.
- Noren:
- What's the potential irritant to Microsoft? It sounds a little like the
Network Computer idea again.
- Feuerstein:
- Honestly, I'll be able to tell you more after the
Oracle Open World show in November 1998 in
San Francisco. It's certainly not as vulnerable as the Network Computer,
because we don't have to convince people to go out and buy special pieces of
hardware. Instead, I believe that Oracle is saying, in essence: "Look DBAs and
developers, you are spending lots of time in the database anyway, so why
leave? We'll give you the software you need to live inside Oracle full-time,
while still accomplishing all the operating system tasks you would have
normally done through other programs."
It's way to early to tell if this will even be noticed by Mr. Gates, much less irritate the poor guy.
- Noren:
- How does Java in the database impact PL/SQL?
- Feuerstein:
- Well, if I was going to be a totally selfish and self-centered individual,
I would get out my magic lantern, rub it three times and ask my genie to MAKE
JAVA GO AWAY! Then PL/SQL would be the only choice for programming inside the
Oracle database, demand for my considerable talents and experience
would stay strong, and I wouldn't have to learn anything new!
Being that I am not such a self-centered person (or I at least hide those tendencies pretty well), I will save my wish for something much more important. Seriously, I am feeling very positive about the addition of Java as a database programming language in Oracle for several reasons:
- The performance and quality of the Java engine has compelled Oracle to
do some serious tuning of the PL/SQL engine - finally!
- Java is a very powerful and exciting development in the world of software. I want to be a part of it, but I also don't want to give up my connection to Oracle technology.
The issue facing Oracle developers will be how to take advantage of both PL/SQL and Java; they'll both be there and they'll both play a role in the life of any Oracle application developer in the coming years. With a solid technology like PL/SQL (not to mention thousands of PL/SQL developers and millions of lines of in-production PL/SQL code), the approach that makes the most sense is to learn how to integrate PL/SQL and Java -- within projects, applications, and an individual's skill-set. Oracle will make interoperability a possibility. It is up to us, the developers, to make it a reality.
So my approach in the coming months and years will be to help developers figure out how to use Java effectively in the Oracle environment without sacrificing the investments that they've made in PL/SQL. I intend to pay close attention to the issues PL/SQL developers confront as they move into and within the Java environment. And, unless I suddenly lose the power of expression (and my compulsion to communicate), you can bet that what I learn will show up in books, articles, and software over the next couple of years.
- The performance and quality of the Java engine has compelled Oracle to
do some serious tuning of the PL/SQL engine - finally!
- Noren:
- How has your life changed since you published your first Oracle book?
- Feuerstein:
- It has changed dramatically. When I wrote the book, I was just finishing up three years of daily consulting at a corporation famous for the production and selling of many, many hamburgers. I was ready for a change, and
Oracle PL/SQL Programming made that change possible.
I no longer do hourly consulting. I present three day seminars on PL/SQL technology (many of them sponsored by Oracle Corporation) all around the country - and even the world. I am amazed at my good fortune! All because of PL/SQL and my writing on it, I have visited Australia, Amsterdam, Madrid, Caracas, Mexico City, Vienna, London, Belfast, and Oslo.
When I am not traveling, I work out of my house, spend time with my family, build software for RevealNet, write articles and text for books - and sometimes I even get away from my computers to do non-PL/SQL things, like play racquetball and work with the Crossroads Fund, a foundation that funds grassroots organizing working for fundamental change in the Chicago area.
Much of my professional time is now devoted to crafting software that PL/SQL developers and development managers can use to improve the quality and performance of their Oracle-based software. I am especially proud of PL/Vision, a code library of over 50 packages, and PL/Generator, a coded generator which I believe personally has the potential of being a "killer app" in the Oracle arena. Of course I am biased, but I think that it is absolutely nuts for any development organization to not take a serious look at the RevealNet product line. Why write code when someone else already wrote it for you? Why write code when you can have a product generate it for you instead?
- Noren:
- How have you seen Oracle change over the last 10 years?
- Feuerstein:
- That's a big question and, of course, what you should REALLY do
is interview Larry Ellison for the "inside scoop". From my perspective,
though, I have seen Oracle evolve in some significant ways as relates
to the developer community. The built-in packages as a whole offer
an excellent example of this change. In the "old days", Oracle would come
up with all sorts of amazing new technologies, but it would all be buried
inside the database engine. With the advent of packages in Oracle7, the
corporation began to exhibit a startling willingness to "expose"
enhancements in the engine, making all the great, new stuff available to
any and all PL/SQL developers.
Another example of Oracle's evolution is its recent embrace (well, that might be a bit too strong a word) of the Linux operating system. After lots of "grassroots" pressure, Oracle announced that it would port its database to Linux. Rumor has it that the port was already largely completed, done by a group even before official blessing was bestowed.
Support for Linux is significant because (a) Oracle generally hasn't previously had a presence in or much vocal support for the Open Source movement and (b) it shows that Oracle is much more responsive to the user community than in the past. So, on the one hand, don't be looking forward to an Open Source version of the Oracle8i server technology. But on the other hand, let's be glad that Oracle remains committed to putting their database on just about any and every operating system known to the human species.
- Noren:
- One thing we at O'Reilly appreciate a lot is that you like to have an
ongoing relationship with your readers.
- Feuerstein:
- I am a strong believer in sharing knowledge and avoiding inflated egos
(i.e., not letting my own get too big and staying away from people in the
Oracle world who have trouble fitting their heads through doorways).
As I tell my classes, I don't know everything there is to know about PL/SQL -- no one does. Every time I give a presentation, I learn something new -- from my students!
I believe that people respond to this openness, and feel less threatened or intimidated. I have also worked hard to create (with the support, encouragement and effort of my friends at RevealNet) the PL/SQL Pipeline, an on-line and totally non-commercial community for PL/SQL developers.
The Pipeline is probably the most active site on the Internet for PL/SQL developers (we also have a DBA Pipeline that boasts similar high traffic). What can you do at the Pipeline? You can:
- Ask questions, post solutions, offer advice, share interesting code. I
host the Pipeline, but there are dozens of incredibly gifted developers from
around the world who have adopted the Pipeline as their own, and visit their
daily to answer questions and help improve the expertise of the PL/SQL
community -- at an incredibly low hourly consulting rate of ZERO.
- Read my monthly diary. If you think some of what you are reading in this interview is a bit, well, zany, you should check out my diary! I tell about my travels, things I have learned about PL/SQL, code I am writing or wrestling with, I create totally fictional conversations with interesting people like Larry Ellison and Bill Gates. I even get to talk politics now and then. I don't mean to sound like I am bragging, but I don't think there's
- Ask questions, post solutions, offer advice, share interesting code. I
host the Pipeline, but there are dozens of incredibly gifted developers from
around the world who have adopted the Pipeline as their own, and visit their
daily to answer questions and help improve the expertise of the PL/SQL
community -- at an incredibly low hourly consulting rate of ZERO.
- Noren:
- What about your life outside Oracle and PL/SQL. What do you do with what
little time is left?
- Feuerstein:
- There is no doubt that there are days when I spend way too much of my life
working with PL/SQL. I rationalize this by saying to myself that it is
important to take advantage of opportunities as they are presented to you.
Still, I used to spend much more time writing non-technical material (such as
children's books - not that I've gotten any of those published. It's much
harder to write and publish fiction than technical content), playing with my
younger son, Eli (though now he is now 12 and is not too interested in doing
anything with me, anyway), and getting involved in various political campaigns.
Still, I am a referee for Eli's AYSO (American Youth Soccer Organization) soccer league, and truly love bossing those little kids around. I am on the board of directors of the Crossroads Fund, a progressive foundation. I visit the Maryville-Columbus Reception Center every Sunday morning (if they need me) to hold and feed and play with babies who have been taken from their parents for any number of reasons. I really like babies. I want to believe (though I also know this belief is incredibly naove) that if men would only spend more time with (and be more responsible for the raising of) children, especially infants, they would be less likely to take a life -- to murder on either an individual or institutional level.
I play racquetball whenever possible and try hard to get exercise on a regular basis so I don't get fat as I get older and so I can live as long as possible. I have a wonderful life (in large part because I have a wonderful wife, Veva Silva) and I want to accomplish "great" things in the time I have left.
- Noren:
- Well, I'd better let you get back to those great things. Thanks very much for your time, Steven.
![]()



