PL/SQL Cop for Trivadis PL/SQL & SQL Coding Guidelines Version 3.2
The PL/SQL Cop tool suite supports the new Trivadis PL/SQL & SQL Coding Guidelines 3.2. Download the new versions from the Download section. So, what’s new? Numbering and Categorisation Scheme The...
View Articleplscope-utils – Utilities for PL/Scope in Oracle Database 12.2
PL/Scope was introduced with Oracle Database version 11.1 and covered PL/SQL only. SQL statements such as SELECT, INSERT, UPDATE, DELETE and MERGE were simply ignored. Analysing PL/SQL source code...
View ArticleGet Ready for Oracle 12.2
The Oracle Database 12.2 grammar is now supported in the most current versions of PL/SQL Cop, PL/SQL Cop for SQL Developer, PL/SQL Cop for SonarQube and PL/SQL Analyzer. The following screenshot shows...
View Articleplscope-utils for SQL Developer – Simplify the Use of PL/Scope
In this post I showed how to do some code analysis with PL/Scope and how the views and packages of the plscope-utils might simplify this task. However, these views and packages are based on dba_* views...
View ArticleContinuous Code Quality for PL/SQL with Docker
In this blog post I show step by step how to set up a continuous code quality inspection environment for a PL/SQL project hosted on GitHub. I’m going to use a Docker container for SonarQube and another...
View ArticleLimitations of PL/Scope and How to Deal with Them
My first car was a Renault R5 TX. The motor cooling of this car was really bad. On a hot summer day it was simply not possible to drive slowly in high traffic without overheating the engine. To cool...
View ArticleEntity Relationship Model for PL/Scope
Today I found a sketch of an ERD from last year when I looked at the new features of PL/Scope in version 12.2. It looked a bit complicated and also wrong. So, I decided to refactor it using SQL...
View ArticleHow to Prove That Your SmartDB App Is Secured Against SQL Injection Attacks
If you are guarding your data behind a hard shell PL/SQL API as Bryn Llewellyn, Toon Koppelaars and others recommend, then it should be quite easy to prove, that your PL/SQL application is secured...
View ArticlePL/SQL Cop for SonarQube 7.0
The last two months my Trivadis colleague Daniel Schutzbach and I have been working on the PL/SQL Cop plugin for SonarQube. The goal was to support the most recent SonarQube versions 5.6 LTS, 6.7 LTS...
View ArticleWhite Listed PL/SQL Programs in Oracle Database 18c
I’ve recently installed plscope-utils in an Oracle Database 18c instance. A package body using the SYS.UTL_XML.ParseQuery function failed to compile. The error message was: PLS-00306: wrong number or...
View ArticleWhere is the Symbian OS stuff?
I’ve released the last version of StartUp in December 1999 and the last version of Crypto in March 2002. That’s quite a long time ago. If you need one of these programs (source or ARM or WINS binary)...
View ArticleUsing UTL_XML.PARSEQUERY for SQL Dependency Analysis
Last week I had a talk at Oracle’s OpenWorld 2011 titled Modern PL/SQL Code Checking and Dependency Analysis. The problem I described in chapter 4 was to find all view columns using the column...
View ArticleApple iPad Camera Connection Kit – What’s faster USB or SD Card?
I’ve just bought a Sony DSC RX100 camera with an Apple iPad Camera Connection Kit. The kit contains an USB adapter and a SD Card adapter. I intend to copy photos to my iPad for review and backup...
View ArticleBuilding Comma Separated Values with Oracle & SQL
From time to time I’m asked to aggregate strings from multiple records into a single column using SQL. Here’s an example, showing a comma separated list of ordered employee names per department based...
View ArticleJoining Temporal Intervals
From time to time a customer asks me how to join multiple tables with temporal intervals (e.g. defined by two columns such as valid_from and valid_to per row). The solution is quite simple if you may...
View ArticleMerging Temporal Intervals with Gaps
In Joining Temporal Intervals I explained how to join multiple temporal tables. The provided solution merges also temporal intervals but – as pointed out in that post – may produce wrong results if the...
View ArticleJoining Temporal Intervals Part 2
The solution I’ve provided in Joining Temporal Intervals produces wrong results if one or more temporal tables have gaps in their history or if disconnected intervals have the same content. In this...
View ArticleLoading Historical Data Into Flashback Archive Enabled Tables
Oracle provides via OTN an import solution for FBA (Flashback Data Archive also known as Total Recall). The solution extends the SCN to TIMESTAMP mapping plus provides a wrapper to existing APIs to...
View ArticleTrivadis PL/SQL & SQL CodeAnalyzer Released
A month ago I had a talk about “Extending the Oracle Data Dictionary for Fine-Grained PL/SQL and SQL Analysis” during the ODTUG Kscope13 conference in New Orleans. Oracle data dictionary views as...
View ArticleTrivadis PL/SQL & SQL CodeChecker Released
In August 2009 Trivadis – the company I work for – released the first version of their PL/SQL & SQL Coding Guidelines. Back then we made our PL/SQL assessments based on interviews and checked the...
View Article