Skip to main content

Posts

Three New Members of the Oracle Database Evangelist Team

A long, long time ago....I announced that I had been given the honor of assembling a team of evangelists, whose job would be to promote Oracle Database as an application development platform. In other words, make sure that current and future users fully leverage all the amazing features for developers that are baked into Oracle Database, such as SQL, PL/SQL, Oracle Text, Oracle Spatial, edition-based redefinition and more. I am very pleased to announce that my team has now swelled dramatically from one person (me) to four, with one more to come on board in early 2015. I will make a more "formal" announcement of our team and our plans in Q1 2015, but for now, I did want to share the joyful feeling I feel. Drum roll, please.... Todd Trichler, Community Manager Todd got his start at Oracle working with Partners in Alliances. For over a decade he has been focused on technology outreach, working closely with development to drive "grass-roots" engagements ...

Tim Hall: PL/SQL presenter extraordinarie

If it's PL/SQL, I'm interested. And if it's PL/SQL involved in winning some sort of award, well, I am downright excited . So I was very pleased indeed to see that Tim Hall of Oracle-Base fame won the UK Best Speaker award at UKOUG 2014 for his talk on Improving the Performance of PL/SQL Function Calls from SQL . Tim is an engaging writer and speaker, but of course that's not while he won the award. It was because the topic he chose was so incredibly important and exciting. Still, I thought it would at least be polite to say to Tim: Congratulations, Tim! Keep up the great work! Tim is one of those Oracle experts (and an ACE Director to boot) who is incredibly generous with his time and knowledge, as anyone who has spent any time on Oracle-Base.com will know. He can also be quite hilarious, as you can tell from his recent blog post on UKOUG 2014 . Here are links to the slide deck, demo scripts and an article all focused on improving the performance of PL/SQ...

SQL is Dead (NOT), Long Live SQL!

I participated in an  Oracle Academy  Ask the Experts webcast in November 2014, with the title "The Code Under the Covers, aka the Database Under the App." The objective of the webcast was to encourage professors to teach, and students to learn, SQL (the Structured Query Language) and PL/SQL (Procedural Language extensions to SQL). In preparing for the talk, I found myself thinking about  Platonic Idealism . Strange, eh? So I thought I'd share some of these thoughts on my blog. I hope you find them interesting enough to share and comment. First, it is very much worth noting that while SQL is "old" - the first commercial SQL database was released by Oracle waaaay back in 1979 -  it's not going anywhere. In fact, it is getting more important than ever, more entrenched, and more widely used. And I think that part of the reason for the  stickiness of SQL has to do with the aforementioned  Platonic Idealism , or to be more precise, it has to do with ho...

Feedback on my Planning for Trouble Oracle Magazine article

Received feedback today from James S on my latest Oracle Magazine article, Planning for Trouble . I will respond here (there is no mechanism for comments/discussion at the Oracle Magazine page). If you haven't yet read it, I suggest you do so before proceeding with this post. Comment 1.  This is regarding exception handling.  Let’s say the client calls procedure A, and A calls B, B calls C.  Are you suggesting we add a “When others” + error logging logic in each level? Does it mean one error will be logged three times? (because it is captured and re-raised each time). Good point, James. I make the argument in the article that you should trap the exception as close as possible to where it was raised, so that you can log  the  values of local variables that may help you diagnose the problem.  [Here's reinforcement of that point (and other great points about doing effective execution tracing) - they call it contextual logging:  http://www.stack...

Planning for trouble: comments on my latest Oracle Magazine article.

In my November/December 2014 article for Oracle Magazine, Planning for Trouble , I urge developers to realize that regardless of best intentions, not everything related to our apps is under our control, and we need to assume that trouble might be coming our way. I received today, the following comments from Gary Malandro, which I thought you might enjoy reading: Enjoyed your article in Oracle Magazine, and I have a few comments. 1.         You mentioned “Documents that spell out naming conventions…fit very nicely inside desk drawers”.  On our team, we have a number of policies that include the requirements for a technical design document, a software change request, source control, and some regarding style.  First thought upon hearing that is probably what-a-load-of-bureaucratic-nonsense.  Well, there are reasons for creating and enforcing these standards.  Compliance for one.  Another is we had code going into producti...

FORALLs and COMMITs

Received this note today from Debbie B: I attended your Turbo Charge PL/SQL seminar today. I still have a question about where to put COMMIT. I’m using 10g. See (pseudo) code below. Say I have 50,000 records and the LIMIT is 100. If an exception is thrown: Do I need a COMMIT in the WHEN clauses so successful DML gets committed, then loop processing will continue? I  was thinking each DML needed it’s own BEGIN EXCEPTION END block so I would know if the error happened due to the insert or the update and could log the appropriate error. Is this wrong?   OPEN v_cursor;   LOOP     FETCH v_cursor BULK COLLECT INTO data_array LIMIT i_limit;     EXIT WHEN data_array.COUNT = 0;     BEGIN       FORALL i IN 1.. data_array.COUNT SAVE EXCEPTIONS         INSERT INTO some_table VALUES data_array (i);         COMMIT; ...

Dinodate, PL/SQL as Scripting Language Liberator, watch the show!

As I mentioned in a previous post , I had an awful lot of fun with Christopher Jones doing our PL/SQL: The Scripting Language Liberator talk at OOW. PL/SQL: The Scripting Language Liberator : While scripting languages go in and out of favor, Oracle Database and PL/SQL persist, managing data and implementing business logic. This session walks through a web application to show how PL/SQL can be integrated for better logic encapsulation and performance; how Oracle's supplied packages can be used to enhance application functionality and reduce application complexity; and how to efficiently use scripting language connection and statement handling features to get better performance and scalability. Techniques shown in this session are applicable to mobile, web, or midtier applications written in languages such as JavaScript, Python, PHP, Perl, or Ruby on Rails. Using the right tool for the right job can be liberating. Once word got out around Oracle that we would be unveiling Di...