OpenWorld 2017–where is the tech content ?

I can’t actually remember how many OpenWorld conferences I have attended. At a guess it would be around 7 or 8. Every year there is a criticism that there is “not enough technical content”.

Well I’m calling “fake news” on that. I can’t remember a time that I’ve struggled to find sessions that I’m interested in. Don’t get me wrong – I would love it if there was double the technical content especially in the (more...)

Partition-wise join

So just what is a “partition-wise” join ?  We will use a metaphor to hopefully Smile explain the benefit.

image

Let’s say two people, Logan and Shannon, decide to move in together.  If each of them already have an existing residence, they will both have a lot of the common items that you find in any household.  So they have a decision to make – do they keep two of everything, or do they have (more...)

Quick Python script to backup remote directory using ftp

I looked around for some other ways to do this but decided to just code this up in Python. It connects to a remote Linux server using ftp and recursively copies all the files and directories back to a Windows machine.

Here is the source:

This is an example of the ease of use of Python for quick scripting. It uses a low-level ftp library called ftplib.

Bobby

Updating indexes with partition maintenance

An index is basically a structure that maps keys (values) in columns to the physical location of their corresponding rows in a table.  So if you move the rows (ie, change the physical location of a row) then the index entries for those rows need to be updated, or the index is no longer usable.  And as most people are aware, the latter is the default when you perform a partition maintenance operation (more...)

With Subquery()

Here’s a little oddity that came up recently on the OTN database forum – an example where a “with” subquery (common table expression / factored subquery) produced a different execution plan from the equivalent statement with the subquery moved to an inline view; tested in 12.1.0.2 and 12.2.0.1. Here are the two variations:

with  tbl as (
          select 1 col1, 'a'  col2 from dual
union all select 2 ,  (more...)

Added save and restore data function to PythonDBAGraphs

I pushed out a quick change to PythonDBAGraphs to automatically save the data for any graph that you make so that you can redraw the graph later. This is better than saving an image file because the redrawn graph lets you see details about the points on the graph when you hover the mouse over the points.

Now when you generate a graph you get a line like this:

Saving data in C:\temp\ASH active session  (more...)

LOBs and tiny typos

This one caught me out – I was racing around looking for bugs, or parameter files, or hidden settings that stopped SECUREFILE lobs from being created.  Here was my incredibly simple test case – create a securefile LOB, and then make sure it’s a securefile.


SQL> create table t1 ( b blob ) lob ( b ) store as securfile;

Table created.

SQL> select securefile
  2  from   user_lobs
  3  where  table_name = 'T1';

SEC
 (more...)

Partitioning Guide updated

partitioning2

Just a quick note to say I’ve updated our Getting Started With Partitioning Guide! 9 easy to follow demonstrations to get developers up to speed with handling large databases. Check it out here


Protection From Equifax Data Breach

Place fraud alert – this only needs to be done from one credit bureau and it will be forwared to all others.

To be safe, I have sucessfully placed fraud alert for TransUnion and Equifax. Was not successful with Experian.

Place credit freeze for Equifax only. Freezing all 3 bureaus will be a pain in the arse for when establishing credit.

Should the business use Equifax exclusively, then there’s a choice to unfreze credit from (more...)

Oracle Partner PaaS Workshop (day 2 – part 3) – VBCS

Last week I attended a two-day PaaS workshop run by Oracle for its partners. We’ve been doing SaaS for a while – that is the applications such as HCM and ERP that users access in order to perform their daily tasks – however there is another stable of applications called Platform as a Service (PaaS) which either add functionality to the SaaS apps or help ‘glue them together’. These applications were the focus of this (more...)

Python for the Oracle DBA – Connects to everything

In my introduction to my Python for the Oracle DBA topic I said that Python can connect to everything that an Oracle DBA needs. I want to use this post to expand on that and talk about the Python modules and packages that I have used.

As you might expect, Python includes built-in modules and ones that you can add. Python comes with a large built-in library called the Python Standard Library. To use these modules (more...)

Cloud Control – Privilege Delegation – so you don´t have the oracle / root password?

Quite frequently in database environments, security policies dictate that only personalized logons to Unix / Linux are allowed and that from there, one has to “sudo” to change to the oracle account. While this adds an additional layer of security, it makes administration a little more complicated.

Oracle Enterprise Manager – Cloud Control has a feature, which allows to cope with such a sudo environment. The feature is called “Privilege Delegation”. This post describes how (more...)

Oracle Partner PaaS Workshop (day 2 – part 2) – Chatbots!

Last week I attended a two-day PaaS workshop run by Oracle for its partners. We’ve been doing SaaS for a while – that is the applications such as HCM and ERP that users access in order to perform their daily tasks – however there is another stable of applications called Platform as a Service (PaaS) which either add functionality to the SaaS apps or help ‘glue them together’. These applications were the focus of this (more...)

The AskTOM team at OpenWorld 2017

The AskTOM team will be out and about at OpenWorld in October, so if you are at the conference as a full attendee, or just with a Discovery pass, please come up and say Hi!  As well as our session talks, we’ll be doing impromptu discussions and mini-sessions during the week either in the Developer Lounge area or the Exhibition Hall, so keep your eyes open on the OpenWorld twitter feeds during the week. (more...)

Python for the Oracle DBA – Easy to use

In my earlier post I said that Python is easy to use. I want to fill in some details in this post. I have two main points:

  1. Python is not easy to learn
  2. Python is easy to use after you learn it

My experience supports these points. I don’t really have time to research what other people say and somehow prove these points with scientific evidence. But, I do have my own recent experience with (more...)

Oracle Partner PaaS Workshop (day 2 – part 1) – MCS and MAX

Last week I attended a two-day PaaS workshop run by Oracle for its partners. We’ve been doing SaaS for a while – that is the applications such as HCM and ERP that users access in order to perform their daily tasks – however there is another stable of applications called Platform as a Service (PaaS) which either add functionality to the SaaS apps or help ‘glue them together’. These applications were the focus of this (more...)

Oracle Partner PaaS Workshop (day 1) – ICS and PCS

Last week I attended a two-day PaaS workshop run by Oracle for its partners. We’ve been doing SaaS for a while – that is the applications such as HCM and ERP that users access in order to perform their daily tasks – however there is another stable of applications called Platform as a Service (PaaS) which either add functionality to the SaaS apps or help ‘glue them together’. These applications were the focus of this (more...)

ezyconnect error ORA-12504

[premiadb:oracle:oradb]$ sqlplus apps@”ebsuat.xxxx.com:1586/ebsuat”

SQL*Plus: Release 12.1.0.2.0 Production on Mon Sep 11 11:04:08 2017

Copyright (c) 1982, 2014, Oracle. All rights reserved.

ERROR:
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA

Cause :

Syntax issue

Solution :

[premiadb:oracle:oradb]$ sqlplus apps@\”ebsuat.xxxx.com:1586/ebsuat\”

SQL*Plus: Release 12.1.0.2.0 Production on Mon Sep 11 11:04:30 2017

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle (more...)

Python for the Oracle DBA – Outline/Intro

I want to put together a talk about how useful the Python programming language is for an Oracle database administrator or DBA. I thought that I would start by putting my thoughts down in a blog post as a possible starting point for a speech. I think the best way to organize this post is around a series of questions.

First off, why does an Oracle DBA need a programming language? We are not developers. (more...)

Please keep your foreign keys

I came across an interesting blog post the other day about whether databases should be (declaratively) enforcing the foreign key relationships between tables.  The blog post discussed the issue of foreign keys being temporarily disabled to perform data loading, and then encountering the problem of what to do when those foreign keys cannot be re-enabled due to bad data.  Perhaps they should just be omitted altogether ?  I don’t want to put words (more...)