Philipp Salvisberg’s Blog

Database-centric development

2016-04-26

PL/SQL Cop Meets oddgen

Until August 2015 it never occurred to me that one could use non-PL/SQL code within conditional compilation blocks. Back then we discussed various template engine options as the foundation for oddgen – the Oracle community’s dictionary-driven code generator. oddgen supports nowadays the in-database template engines FTLDB and tePLSQL. Both tools may access templates stored in PL/SQL packages using a […]
2016-04-23

Monitoring PL/SQL Code Evolution

Last week I presented the PL/SQL Cop tool suite to a customer in Germany. While preparing the demo I had taken my first deeper look at the PL/SQL Cop SonarQube plugin, written by Peter Rohner, a fellow Trivadian. I was impressed by how well the additional PL/SQL Cop metrics integrate into SonarQube and how easy […]
2015-12-07

Outer Join Operator (+) Restrictions in 12.1.0.2?

I’m currently reviewing a draft of Roger Troller’s updated PL/SQL and SQL Coding Guidelines version 3.0. One guideline recommends using ANSI join syntax. The mentioned reasons are ANSI join syntax does not have as many restrictions as the ORACLE join syntax has. Furthermore ANSI join syntax supports the full outer join. A third […]
2015-11-23

Update for PL/SQL Cop and PL/SQL Analyzer

Some people asked me to announce the availability of new versions of products on my website. I guess a blog entry and a Twitter announcement should do the job. Today I’ve released the following three updates: These products are always affected by a  grammar change to SQL*Plus, SQL or PL/SQL. The goal is to […]
2015-05-17

Introducing PL/SQL Unwrapper for SQL Developer

I’m using from time to time the free service Unwrap it! or Niels Teusink’s Python script unwrap.py to unwrap PL/SQL code. Recently I’ve been confronted more with wrapped code since a customer is about to migrate to a new banking platform which is using wrapped PL/SQL code extensively. While investigating migration errors we experienced that […]
2015-05-05

Cannot Install Extensions in SQL Developer 4 on Mac OS X

Today I could not install any SQL Developer extension on my Mac OS X machine. I did not get an error message during the installation. After a restart of SQL Developer, the extension simply was missing. When I tried to re-install it – selecting “Check for updates…” in the “Help” menu – I got the […]
2014-05-22

Ready for Oracle 12c

The Oracle 12c grammar is now supported in the new versions of the Trivadis CodeChecker, CodeChecker for SQL Developer and CodeAnalyzer. The following example code, copied from a colleague at Trivadis, shows how to insert rows while querying a view. This might not be the most appropriate way to implement auditing, but it shows in a […]
2014-04-30

Trivadis PL/SQL & SQL CodeChecker for SQL Developer Released

A half a year ago Trivadis released a command line utility to scan code within a directory tree for guideline violations of the Trivadis PL/SQL & SQL Coding Guidelines Version 2.0. This tool is perfectly suited to process millions of lines of code, but an integration into Oracle SQL Developer was missing until now. […]
2014-01-04

Multi-temporal Features in Oracle 12c

Oracle 12c has a feature called Temporal Validity. With Temporal Validity, you can add one or more valid time dimensions to a table using existing columns, or using columns automatically created by the database. This means that Oracle offers combined with Flashback Data Archive native bi-temporal and even multi-temporal historization features. This […]
2014-01-02

Column-less Table Access

While writing some JUnit tests after fixing bugs in dependency analysis views, I came up with the following query: The first view tvd_object_usage_v contains all table/view usages per object. The second view tvd_object_col_usages_v contains all column usages per object. The idea was to check the completeness of the second view tvd_object_col_usages_v. I […]