Select Page

Converting Hexadecimal Oracle SCNs to Decimal

Jeremiah Wilton | | November 19, 2009

Oracle serializes transactions and manages concurrency and recovery using an ever-increasing number called a system change number, or SCN. Usually, we see these numbers expressed in decimal, in places like the v$ views and the alert log. Occasionally, however, Oracle’s code expresses SCNs in hexadecimal. Unfortunately, you can’t just perform a straght conversion from hex to dec to express these hex SCNs in dec. Here is the same Oracle SCNs expressed in hex and dec:

0x952.f5e60bda
10251917462490

Thanks to Tanel Poder’s generous assistance, I learned how to convert this kind of SCN to decimal.

The first portion of the hex scn is the number of times the second portion has reached the maximum value (ffffffff), and started back at 00000001. We’ll call it “wrap.”

The second portion of the hex scn is the base SCN value that increments one with each new change. We’ll call it “base.”

The formula for converting the hex SCN to dec would therefore be:

decimal = wrap * 232 +  base

I write a Unix shell on-liner to do the conversion:

[code language=”plain”]$ a=0x952.f5e60bda;echo $((${a%%.*}*4294967296+0x${a##*.}))[/code]

Just replace the hex SCN I used in the example with your own.

12c Upgrade Bug with SQL Tuning Advisor

This blog post outlines steps to take on Oracle upgrade 11.2 to 12.1 if you’re having performance problems. Oracle offers a patch and work around to BUG 20540751.

Megan Elphingstone | March 22, 2017

Oracle EPM Cloud Vs. On-Premises: What’s the Difference?

EPM applications help measure the business performance. This post will help you choose the best EPM solutions for your organization’s needs and objectives.

Bobby Ellis | April 10, 2018

Scripting Out the Logins, Server Role Assignments, and Server Permissions

Imagine there are over one hundred logins in the source server and you need to migrate them all over to the destination server. Wouldn’t it be awesome if we could automate the process by generating the scripts for the required tasks?

JP Chen | October 1, 2015

Work with Us

Let’s have a conversation about what you need to succeed and how we can help get you there.

CONTACT US

Work for Us

Where do you want to take your career? Explore exciting opportunities to join our team.

EXPLORE JOBS