Oracle 12c and PHP

This answers “How you connect PHP programs to an Oracle 12c multitenant database. This shows you how to connect your PHP programs to a user-defined Container Database (CDB) and Pluggable Database (PDB). It presupposes you know how to provision a PDB, and configure your Oracle listener.ora and tnsnames.ora files.

CDB Connection:

This assumes you already created a user-defined c##plsql CDB user, and granted an appropriate role or set of privileges to the (more...)

Docker-Swarm: Running a minimal webserver in a swarm

In my last posting to docker swarm i created a swarm on virtualbox with alpine linux with a hdd footprint of 290MB per node:
There are some tutorials out there with running a nginx or a java webserver in a container but >100MB for each node seems far to much for my tests.

So i decided to create a application which listens on port 8080 with netcat. I created a directory ncweb with

Jarvis Pizzeria: First step in Implementing the Order Processing, Interface Definition

| Dec 10, 2017
In a previous blog post we gave a functional description of the pizza preparation process. For this we used the image below. Till now we only have implemented the bottom part ‘the preparation of a single pizza’.
In this post we will do the next step. The preparation of a complete order, containing potentially multiple pizzas. We will do this in a separate process. So let's start by creating a new process in the preparation (more...)

LEAP#355 Snow Flake

When @LuckResistor announced the Snow Flake to the Boldport Club community, I knew I had to join in!

The Snow Flake is an Atmel SAM D ARM Cortex-M0-controlled LED ornament. I’ve just completed building the first Once I have built some more I will be able to experiment with co-ordinated operation, but even a single snowflake makes for an impressive display.

As always, all notes, schematics and code are in the Little Electronics & Arduino (more...)

Type Dependent Tree

While trying to explain a student question about Oracle object types, it seemed necessary to show how to write a dependency tree. I did some poking around and found there wasn’t a convenient script at hand. So, I decided to write one.

This assumes the following Oracle object types, which don’t have any formal methods (methods are always provided by PL/SQL or Java language implementations):

( base_id  NUMBER  (more...)

Steps For Optimizing Your Website

People use search engines like Google when looking for products or brands these days. In fact, 60 percent of consumers take advantage of Google search just to find what they exactly want, and more than 80 percent of online search results lead to in-store visits as well as sales. So if you want to receive massive traffic and increase your sales, optimizing your website is the perfect solution.

Optimized Website, A Business Owner’s Priority

Search (more...)

SQL*Plus tips #8: How to read the output of dbms_output without “serveroutput on”

When “serveroutput” is enabled, SQL*Plus executes “BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;” after each command.
That’s why I don’t like when it is always enabled: it adds extra calls and round-trips and it is inconvenient when I want to get a plan of the last executed query:

SQL> set serverout on;
SQL> select * from dual;


SQL> select * from table(dbms_xplan.display_cursor('','','allstats last'));

SQL_ID  9babjv8yq8ru3, child number 0

BEGIN  (more...)

https for IIS on IaaS – the basics

More a quick reference for me than anything else - these are the steps to enable https for iis on IaaS in Azure (well or anywhere for that matter) - this will use a 'proper' certificate from a certifying authority to stop all those warnings you get with self certified ones.

So here are the quick steps - in this case i have a server called testssl this is in an azure domain called mycompany. (more...)

Substitutable Columns

Oracle’s substitutable columns are interesting and substantially different than Oracle’s nested tables. The benefit of substitutable columns is that you can create one for an object type or any subtypes of that object type. Unfortunately, you can’t create the same behavior with nested tables because Oracle’s implementation of collection types are always final data types and you can’t extend their behaviors.

The Oracle Database has three types of collections. Two are SQL scoped collection types (more...)

Alexa Push Notifications via Reminders

From the first day I got the Amazon Echo in December 2014 I looked for more interesting ways to interact with it. Before the Alexa team released an official API, I came up with a rather creative way to control things . It was not perfect since I had to add things to the “todo” list and then poll private APIs for changes. A few months later the official API came and things have been (more...)

Oracle ACE Director

I was at UKOUG Tech17 this week in my capacity at both Speaker and Tech Lead (organizing and selecting the agenda, drinks, parties, etc – although the heavy lifting is done by the @UKOUG office)

There was rather a nice surprise waiting for me. Jennifer from the Oracle ACE Program upgraded my Oracle ACE to Oracle ACE Director.


This is a wonderful honour and reflects the many many days dedicated each year to the Oracle (more...)

Bug with integer literals in PL/SQL

This interesting question was posted on our russian forum yesterday:

We have a huge PL/SQL package and this simple function returns wrong result when it’s located at the end of package body:

create or replace package body PKGXXX as
  function ffff return number is
  nRes number;
    nRes :=  268435456;
    return nRes;

But it works fine in any of the following cases:
* replace 268435456 with power(2, 28), or
* replace (more...)

How do I create a responsive Rich Text Editor in Oracle APEX?

I was in a video call this morning with a great customer from England (and by the way, this customer is in the process of transforming the healthcare industry across the UK).  They asked me a very simple question:

How do I create a responsive Rich Text Editor item on a page?

Simple question and answer, right?  Well, you'd be wrong.  While we pride ourselves on the responsive user interfaces that you (more...)

Keyword Rank Tracking Tools

An important element of search engine optimization (SEO) is choosing the right keyword. With the right keywords, you can make your content rank on search engines. But the work doesn’t stop after ranking, you still need to track the position of your keyword during the search. That way, you can obtain helpful information that will guide you in keeping your SEO efforts successful.

Why Check Keyword Ranking Regularly

One of the main reasons why you (more...)

Reverse engineer existing Oracle tables to Quick SQL

If you didn't hear about Oracle Quick SQL, it's time to read about it as it's something you have without knowing (it's a packaged app in Oracle APEX) and I believe you should start using :)

Quick SQL enables you to rapidly design and prototype data models using a markdown-like shorthand syntax that expands to standards-based Oracle SQL. You can easily create master detail relationships, check constraints, and even generate sample data.

In my (more...)

Shooting the DBA isn’t a Silver Bullet to the Cloud

We’ve all been watching numerous companies view value in bypassing the Database Administrator and other critical IT roles in an effort to get IT faster to the cloud.  It may look incredibly attractive to sales, but the truth of it is, it can be like setting up land mines in your own yard.

Having the right people in the right roles, doing the right tasks is essential to having a complete cloud deployment.  (more...)

UKOUG Tech17 is a wrap

Last week I have attended the UKOUG Tech Conference at the ICC in Birmingham. This conference is a combined conference with APPS-, TECH- and JDE-related content. Quistor was present with a stand at the JDE-conference. For me, these kinds of events are a way of exchanging knowledge and meeting old and new friends. I have … Continue reading "UKOUG Tech17 is a wrap"

Probleme mit der automatischen Statistikerfassung in 12c

Mohamed Houri zeigt einen interessanten Fall, in dem das in 12c ergänzte Feature der automatischen Erstellung von Optimizer Statistiken für eine zuvor leere Tabelle unerfreuliche Effekte mit sich bringt. Im geschilderten Fall erfolgt das zugehörige INSERT /*+ append */ auf Basis einer remote Tabelle und die automatische Statistikerfassung verlängerte die Laufzeit der Operation auf mehrere Tage. Das Feature wurde dabei nicht aktiv, wenn aus der Spaltenliste einzelne Spalten ausgeschlossen wurden. Zudem kann es über den (more...)

Friday Fun SQL Lesson – union all

Our office kitchen is unavailable this Friday, so the call was put out for pub lunch.

After a couple of replies I decided to enter my reply, in full nerd mode.
select * from people_coming_to_lunch;


3 rows selected.
And of course one of the other SQL geeks (name redacted) replied to extend the data set.
select * from people_coming_to_lunch
select 'Shanequa'
from dual;
And I couldn't help myself. I (more...)

Improving Google Crawl Rate Optimization

There are different components that form an SEO strategy, one of which is commonly referred to as crawling, with tools often being called spiders. When a website is published on the Internet, it is indexed by search engines like Google to determine its relevance. The site is then ranked on the search engine with a higher ranking being attributed to a higher visibility potential per primary keyword.

In its indexing process, a search engine (more...)