Ich werde nachlässig: auf der Suche nach meiner Zusammenfassung der ersten beiden Teile von Jonathan Lewis AllThingsOracle-Serie zu Massendatenlöschungen ist mir aufgefallen, dass ich dazu keine Zusammenfassungen geschrieben habe. Aber das lässt sich ja ändern:
Massive Deletes – Part 1
: beschäftigt sich zunächst mit strategischen und taktischen Fragen bei der Löschung von Massendaten. Auf der strategischen Ebene liegen Fragen nach der Zielsetzung der Löschung: was verspricht man sich davon und lohnt sich der Aufwand (more...)
Guys, AIOUG is back again with OTN Yathra’ 2016. It is a series of technology evangelist events organized by All India Oracle Users Group in six cities touring across the length and breadth of the country. It was my extreme pleasure to be the part of it in 2015 and I’m pleased to announce that … Continue reading
A common Apex project is to take a customer’s existing spreadsheet-based solution and convert it more-or-less as is into Apex. I’ve got one going at the moment, a budgeting solution where users need to enter their budget requests. They currently enter their requests into an XLS template file which generates subtotals and totals for them.
To do this in Apex I’m going to use a tabular form, and to do the subtotals I’ll use jQuery (more...)
I'm a regular contributor to the Oracle APEX forum
and something I'd like to note is the amount of questions that possibly wouldn't need to be asked if one had consulted the help of the attribute in question.
For example, here
someone asked about referencing page values in the Email built-in process.
I managed to interpret the question two different ways on reading it twice, so I would also plead with people asking questions to (more...)
Obviously Interface Segregation is crucial for implementing restricted access. For any given set of data there are three broad categories of access:
- administration and governance
So we need to define at least one interface - packages - for each category in order that we can grant the appropriate access to different groups of users: read-only users, regular users, power users.
But there's more to Interface Segregation. This example is based on a procedure (more...)
Here are some more principles which can help us design better programs. These principles aren't part of an organized theory, and they're aren't particularly related to any programming paradigm. But each is part of the canon, and each is about the relationship between a program's interface and its implementation.
The Principle Of Least Astonishment
Also known as the Principle of Least Surprise
, the rule is simple: programs should do what we expect them to (more...)
When we talk about program design we're mainly talking about interface design. The interface is the part of our program that the users interact with. Normally discussion of UI focuses on GUI or UX, that is, the interface with the end user of our application.
But developers are users too.
Another developer writing a program which calls a routine in my program is a user of my code (and, I must remember, six months after (more...)
Consider a chart with a trend that might be quite jagged across data points (blue line).
What if you would like a smoother version of that line - a moving average
, if you will (red line). This stabilises the results, like looking at climate vs weather
|Oracle APEX Line Chart - 2 series|
It's fairly easy from a SQL point of view - in this case it's another column in the original chart query
Oracle Database 12c enables enhanced security for extproc by authenticating it against a user-supplied credential. This new feature allows the creation of a user credential and links it with a PL/SQL library object. Whenever an application calls an external procedure, the extproc process authenticates the connection before loading the shared library. The DBMS_CREDENTIAL package is … Continue reading
I have been out giving talks again on using agile methods for data warehouse and business intelligence projects, so I thought it was time for me to share my thoughts about the 4 key elements you need to be successful with an Agile DW project in 2016. Adopt an Agile Methodology By this I am talking […]
Recently I saw a simple, accepted answer in the forums that tempted me to provide a small extension to the provided answer. This has since spawned two blog post ideas, here is the first.
The following question asked how to hide the spinner from a particular page full of small reports refreshed on a timer.https://community.oracle.com/thread/3908020
The answer was some basic CSS, which could be placed in a variety of locations depending (more...)
Getting older, it’s getting harder to see and click those tiny checkboxes…
/* Double-sized Checkboxes */
-ms-transform: scale(2); /* IE */
-moz-transform: scale(2); /* FF */
-webkit-transform: scale(2); /* Safari and Chrome */
-o-transform: scale(2); /* Opera */
CAN YOU SEE THEM NOW? Ah, good. That’s all right then.
Brought to you by dept-of-coding-by-copy-and-paste.
Filed under: APEX
Recently I got involved in a question on Temporal Validity Periods together with Chris Saxon, one of the askTom-answer team.
The question was along the lines of: "What if I have a single start date but two possible end dates. One of the end dates is filled automatically by a background proces (could be a job) while the other one is to signal that the end date is set manually by the user. Could you (more...)
Designing PL/SQL Programs is a succession of articles published the articles in a nonlinear fashion. Eventually it will evolve into a coherent series. In the meantime this page serves as a map and navigation aid. I will add articles to it as and when I publish them.
IntroductionDesigning PL/SQL Programs
Principles and PatternsIntroducing the SOLID principlesIntroducing the RCCASS principlesThe Dependency Inversion Principle: a practical example
Tools and Techniques
These design principles may seem rather academic, so let's look at a real life demonstration of how applying Dependency Inversion Principle lead to an improved software design.
Here is a simplified version of an ETL framework which uses SQL Types in a similar fashion to the approach described in my blog post here
. The loading process is defined using an abstract non-instantiable Type like this:
create or replace type load_t force as object
( txn_date (more...)