We were recently looking for a way to easily anonymize some customer data, specifically bank account numbers.
Part of our testing mechanism is to verify that a bank account and sort-code combination is valid and we retrieve the bank details for that combination (using a commercial account lookup service). So we couldn't just replace the sort-code and/or account number with random numbers.
Conversely, replacing all account numbers with a handful of known, "safe" working values would lead to skewed data spreads, so that wouldn't work.
A better solution is to shuffle the existing data, moving the sort-code and account (more...)
One of things I don't like about Oracle SQL Developer is that if you are browsing and clicking on tables, it can automatically open the table on the right side of the IDE.There is a simple way to switch that off, just heard how to switch this feature off. Navigate to the Preferences settings:
Goto Database >> Objectviewer, and uncheck the tickbox labelled "Open Object on Single Click"
And that's it.
Yesterday Bryn Llewellyn, Distinguished Product Manager, did a session called "PL/SQL Enhancements brought by the latest generation of database technology". The room was packed. For the upcoming release of the Oracle 12c database the enhancements were broken into three areas:
SQL vs NoSQL: Third International NoCOUG SQL & NoSQL Challenge sponsored by Pythian
As published in the 102nd issue of the NoCOUG Journal
THE WICKED WITCH OF THE WEST NEEDS HELP
BE IT KNOWN BY THESE PRESENTS that the Wicked Witch of the West needs your help to create
In my last blog post
I described using the DBMS_DATAPUMP and DBMS_JOB packages to automate database schema backups from the database itself, rather than using batch files to do so. I also mentioned that "since the files are written to the database server itself, you need some kind of process to move the files to another server or storage location, so the backups don't disappear along with the database if the database server itself is somehow lost or corrupted. [One] option is to upload the backup file from the database to some online ("cloud") storage service, such as Amazon S3. (more...)
Usually, database backups are the responsibility of DBAs, and not something that developers really care or think too much about. However, if you are a lone developer, or part of a small team that doesn't have the luxury of having a dedicated DBA, then you might have to deal with backups yourself.
There are several ways to make Oracle backups; what I will be concentrating on here is the "Data Pump Export" method. You may already be familiar with the command-line "expdp" command which allows you to create a dump (.dmp) file containing your database objects (schemas, tables, procedures, (more...)
Para quem usa o SQL Navigator 6.7 e tem notado que "às vezes" prende, tal parece ter origem na "feature History" que guarda os SQL (tec..) efetuados e permite uma pesquisa nos mesmos. É possivel efetuar uma "limpeza dos comandos efetuados" antes de uma data data ou toidos de modo a evitar que o ficheiro fique muito grande (parece que apartir de 600K é que o problema é encontrado) "Before you deleting your history file, you can have a backup if needed, the history file is in: xp: C:\Documents and Settings\UserName\Application Data\Quest Software\SQL Navigator 6.6.0\Unified (more...)
The following SQL pattern can be used to simulate DML operations on XML data by utilizing XU (XQuery Update) functionalities.
This query will do the following XML data transformation by using XU insert/delete/rename/replace statements.
1) Convert all the XML Attributes to Elements. ( XU Delete & Insert)
2) Change the (more...)
Starting from 11.2 its possible to use SSL client certificates to authenticate yourself to a remote web service using SSL client certificates. I did not find much information on it using Google or documentation, that is why I'm writing this post.
Please refer to this post by Tim Hall to get started on connecting to HTTPS service using UTL_HTTP, all of this is needed before continuing with SSL client certificate authentication.
The first thing you need is to generate user certificate request inside Oracle Wallet, sign it by CA and load the returned certificate back to Wallet. I'm not (more...)
The following XML Schema can be used to validate the XML input data in the XML DB.
It enforces the following validation rules:
1) Parent_Tab/Parent_Row/dep_id is the (primary) key within Parent_Tab.
2) Parent_Tab/Parent_Row/dep_name should be one of the xs:enumeration list in DeptnameType and it is also unique within Parent_Tab.
As mentioned in my earlier post
, I've been working on a PL/SQL wrapper for the Microsoft Exchange Web Services (EWS) API. The code is now ready for an initial release!
Using this pure PL/SQL package, you will be able not just to search for and retrieve emails and download attachments, but you will also be able to create emails and upload attachments to existing emails. You can move emails between folders, and delete emails. You can read and create calendar items. You can get the email addresses of the people in a distribution (mailing) list, and more.
"It is sayd, that at the nede the frende is knowen."
- William Caxton: "Sonnes of Aymon" (1489)
"I say, that when you screw up, Flashback Query is a friend indeed!"
- Morten Braten: "SQLs of Oracle" (2012)
The Flashback Query
feature of Oracle (10g) can be really helpful when you run that UPDATE or DELETE statement and then, after
the COMMIT, you discover that you made a mistake!
Wouldn't it be nice to be able to look back and see what the data looked like before you messed things up? With a Flashback Query you (more...)
It's been over two years since I released the initial version
of the jQGrid Integration Kit for PL/SQL and Apex.
Since then, I've added some additional features and fixed a few bugs:
- Procedure include_static_files_once will make sure required JS and CSS files are correctly included
- Support for "popup_lov" column edit type
- Procedure render_grid supports p_read_only parameter that can be used to set read-only dynamically
- Support for some jQGrid built-in formatters based on Oracle column data type
- Lists of values (select list variety, not Popup LOV) now support bind variables and Static LOVs
- Date parser handles dates and (more...)
Oracle Database has had the possibility to run Java code inside the database for a long time. It's a very rare occasion when you need to use it but still. Here is one example I used to download content from HTTPS website that required user certificates for authentication. Please take the code below more as an example how to put simple Java code inside the database, not as a solution for user certificates authentication, because UTL_HTTP can do the same thing (although I wasn't successful in implementing it under 126.96.36.199).
First, load the Java source into database. (more...)
Quest Software released
the 6.7 version of SQL Navigator. Mainly it corrects some bugs
... or how to read your (Microsoft Exchange) email using SQL and PL/SQL.
You are probably familiar with sending
email using PL/SQL; there's the UTL_SMTP package, the APEX_MAIL package, and various other utilities that do this.
But what about reading
email using PL/SQL? You need to investigate the POP and IMAP protocols. A quick search on Google turns up some sample code
and even a feature-rich package
, although the latter requires Java in the database (which I try to avoid whenever possible, and which is not available in Oracle XE in any case).
Approaching this from a different angle, (more...)
The following SQL pattern can be used to do XML based data manipulation and transformation by utilizing XSLT functionality.
This query will do the following data manipulation and transformation:
1) Rename the xml tag <FirstName> to <FN> when the position of the element node is
either the last one or (more...)
Here's a bunch of interesting stuff related to PL/SQL and Apex that I've come across lately, I'm posting it both as a reminder to myself, and to help spread the word:
- First mention of PL/SQL enhancements for Oracle Database 12c: In his PL/SQL newsletter for March 2012, Steven Feuerstein revealed that "I've also started beta testing Oracle Database 12c PL/SQL. I can't yet share with you any of the new features, but I can tell you that PL/SQL will certainly be a richer, more usable language when 12c goes production!".
- On that topic, a couple of things I (more...)
The ability to parse a CSV file in PL/SQL seems like a simple requirement and one would think that you could either a) easily implement it yourself, or b) find some examples of it on the web. Well if you have tried option A, you probably realized it gets real tricky when you have commas and double quotes in your actual data as well as having them as your deliminators and optionally enclosed by characters as well. Plus all that substr‘ing and instr‘ing can really hurt your head after a while. If you tried option B, then (more...)
The following SQL pattern can be used to stragg all the table column data together
The STRAGG(column data) is grouped together based on the table column names.
This SQL also manipulates comma-delimited strings using XQuery functionalities.
CREATE TABLE PERSON
FIRSTNAME VARCHAR2(20 BYTE),
MIDDLENAME VARCHAR2(20 BYTE),
LASTNAME VARCHAR2(20 BYTE),