New Ranking Tags Feature of Oracle Dev Gym
Steven Feuerstein on Oracle PL/SQL
by
2y ago
                                 You can take quizzes, workouts and classes at the Oracle Dev Gym solely with the objective of learning and improving your expertise in Oracle technologies. You can also play competitively, which means that you will be ranked when you take a tournament quiz. You can see all the rankings for tournaments by clicking on the Leaderboard tab. But what if you'd like to see how you ranked compared to your co-workers or friends? What if your entire dev team wants to take a workout t ..read more
Visit website
Changes to Oracle Dev Gym Tournaments in 2021
Steven Feuerstein on Oracle PL/SQL
by
2y ago
The more things change, the more they stay the same? Or is it: No matter how much we want things to stay the same, they inevitably must change? Or perhaps it's: 2020's been such a horrible year in many respects, let's change things up in 2021 in every way we can! Whichever platitude or desire fits best, at the Oracle Dev Gym, things are about to change. From 2010 to 2014, this website (then known as the PL/SQL Challenge) offered daily quizzes on PL/SQL, plus SQL, Logic, database design, APEX (on and off), Java (for a while). In 2014, when I rejoined Oracle, the PL/SQL quiz also went to a week ..read more
Visit website
Different SYSDATE behaviors in SQL and PL/SQL
Steven Feuerstein on Oracle PL/SQL
by
2y ago
The SYSDATE function is available in both SQL and PL/SQL. They both return the current date-time (down to nearest second) for the database, So it would be reasonable to assume that they "act" the same in both SQL statements and PL/SQL blocks. That would, however, be a bad assumption to make, because in reality: In SQL, SYSDATE is called just once for the entire statement. In PL/SQL, SYSDATE is called every time it is invoked. Wow. Mind blown.  Let's take a look. In the script below, I create a table and insert four rows. Then I create a package that keeps track of distinct dates adde ..read more
Visit website
Implementing Enhanced Table Auditing in the Oracle Dev Gym
Steven Feuerstein on Oracle PL/SQL
by
2y ago
I'd like to start off this post by thanking Connor McDonald, a member of my Oracle Developer Advocates team. I'm a traditional sort of Oracle developer. I learned a long time ago to use row-level triggers to keep track of who created and changed a row and when.  So, for example, for the DG_CLASSES table of the Oracle Dev Gym (which is used both for Dev Gym classes and AskTOM Office Hours), I have these two triggers: TRIGGER dg_classes_bir BEFORE INSERT ON dg_classes FOR EACH ROWDECLAREBEGIN :new.created_on := SYSDATE; :new.created_by := qdb_config.apex_user; :new.changed_on := SYSDATE ..read more
Visit website
The differences between deterministic and result cache features
Steven Feuerstein on Oracle PL/SQL
by
2y ago
 EVERY once in a while, a developer gets in touch with a question like this: I am confused about the exact difference between deterministic and result_cache. Do they have different application use cases? I have used deterministic feature in many functions which retrieve data from some lookup tables. Is it essential to replace these 'deterministic' key words with 'result_cache'?  So I thought I'd write a post about the differences between these two features. But first, let's make sure we all understand what it means for a function to be deterministic. From Wikipedia: In computer ..read more
Visit website
Generate code to move rows to string indexed collections
Steven Feuerstein on Oracle PL/SQL
by
2y ago
Write code for a living? Feeling kind of lazy? Then maybe you should find a way to generate some code. That's the focus of this blog post. The bulk processing feature of PL/SQL was introduced a long, long time ago. It lets us, among other things, do this: Lovely, concise syntax. One downside, however, is that the target collection in the BULK COLLECT INTO clause must be indexed by integer (which means all nested tables and varrays, but only INDEX BY - associative array - collections that are index by PLS_INTEGER or variations therein). This means that if you do want to use a string ..read more
Visit website
Office Hours June 2020: Exploring the PL/SQL Profilers
Steven Feuerstein on Oracle PL/SQL
by
2y ago
PL/SQL offers two profiler utilities to help identify performance bottlenecks in your application: 1. DBMS_PROFILER That's the name of the package that provides an API to the profiler that computes the time that your PL/SQL program spends at each line, in each subprogram. Saves runtime statistics in database tables, which you can then query. 2. DBMS_HPROF The hierarchical profiler; this utility reports the dynamic execution program profile of your PL/SQL program, organized by subprogram invocations. It accounts for SQL and PL/SQL execution times separately. Requiring no special source or c ..read more
Visit website
Virtual Private Database: Beyond the Basics
Steven Feuerstein on Oracle PL/SQL
by
3y ago
Virtual Private Database (VPD), also referred to as row-level security or RLS, is a feature built into the Oracle Database that allows you to set up security policies on tables that restrict which rows a user can see or change based on the policy logic. One of the nicest things about VPD is that this logic (and the fact that a filter is being applied) is completely invisible to the user. They just see the data relevant to them and none the wiser about all that other data in the data. Here's a simple example to drive the point home: suppose I am building a health care application and it conta ..read more
Visit website
Why DBMS_OUTPUT.PUT_LINE should not be in your application code
Steven Feuerstein on Oracle PL/SQL
by
3y ago
A database developer recently came across my Bulletproof PL/SQL presentation, which includes this slide. That first item in the list caught his attention: Never put calls to DBMS_OUTPUT.PUT_LINE in your application code.So he sent me an email asking why I would say that. Well, I suppose that is the problem with publishing slide decks. All the explanatory verbiage is missing. I suppose maybe I should do a video. :-) But in the meantime, allow me to explain. First, what does DBMS_OUTPUT.PUT_LINE do? It writes text out to a buffer, and when your current PL/SQL block terminates, the buffer i ..read more
Visit website
An Application Alerting Utility
Steven Feuerstein on Oracle PL/SQL
by
3y ago
A few weeks ago, Mike Hichwa asked me to come up with a package that would implement a simple alerting utility: specify a triggering event (based on a query or a PL/SQL expression) and then take the specified actions when it is triggered. Seeing as he is my boss, I said "OK" and got to work (my favorite kind of work: writing some PL/SQL code). We did our usual bit to expand scope, then did our usual bit to agree that this is enough for a first pass. And then Mike said: "Go ahead and write a blog post about it, share it with the community." So here goes. The basic idea is we start up a job u ..read more
Visit website

Follow Steven Feuerstein on Oracle PL/SQL on Feedspot

Continue with Google
OR