Q

# Converting number to HEX value, part 2

Is there a piece of PL/SQL or function or group of functions where I can take a number between 1 and 1234567 and convert it into a HEX value?
str := upper(str);  /* a-f ==> A-F */
/* determine valid characters for given radix */
valid := 1;
len := length(str);
i := 1;

while (valid !=0) loop
valid := instr(validChars, substr(str, i, 1));
i := i + 1;
end loop;

if (valid=0) then
retval := false;
i := to_number('invalid number');  /* Forces ORA-6502. */
else
retval := true;
end if;

return retval;
end isValidNumStr;

/* This function converts a number into a string in given radix.
Only non-negative integer should be passed as the argument num, and
radix must be a positive integer in [1, 16].
Otherwise, 'ORA-6502: PL/SQL: numeric or value error' is raised.
*/
dividend number;
divisor number;
remainder number(2);
numStr varchar2(2000);
begin
/* NULL NUMBER -> NULL hex string */
if(num is null) then
return null;
elsif (num=0) then  /* special case */
return '0';
end if;

/* invalid number or radix; force ORA-6502: PL/SQL: numeric or value err
*/
if (num<0) or (num!=trunc(num)) or
numStr := to_char(to_number('invalid number'));  /* Forces ORA-6502. */
return numStr;
end if;

dividend := num;

/* the actual conversion loop */
while(dividend != 0) loop
numStr := digitToString(remainder) || numStr;
end loop;

return numStr;

function toBinaryString(num in number) return varchar2 as
begin
end toBinaryString;

function toHexString(num in number) return varchar2 as
begin
end toHexString;

function toOctalString(num in number) return varchar2 as
begin
end toOctalString;

/* The parseInt() function is equivalent to TO_NUMBER() when called
without a radix argument.  This is consistent with what Java does.
*/
function parseInt(s in varchar2) return number as
begin
end parseInt;

/* Converts a string in given radix to a number */
function parseInt(s in varchar2, radix in number) return number as
str varchar2(2000);
len number;
decimalNumber number;
begin
/* NULL hex string -> NULL NUMBER */
if(s is null) then
return null;
end if;

/* Because isValidNumStr() expects a IN OUT parameter, must use an
intermediate variable str.  str will be converted to uppercase
inside isValidNumStr().
*/
str := s;
if (isValidNumStr(str, radix) = false) then
return -1;  /* Never executes because isValidNumStr forced ORA-6502. */
end if;

len := length(str);
decimalNumber := 0;

/* the actual conversion loop */
for i in 1..len loop
decimalNumber := decimalNumber*radix + digitToDecimal(substr(str, i,
1));
end loop;

return decimalNumber;
end parseInt;
end Lang_Integer;
/

grant execute on Lang_Integer to public;

This was last published in June 2004

## Content

Find more PRO+ content and other member only offers, here.

#### Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

#### Start the conversation

Send me notifications when other members comment.

## SearchDataManagement

• ### Amazon ushers in pay-by-query pricing with Athena data engine

Amazon's Athena data engine brings interactive SQL queries to S3. It's based on an open source framework that Teradata and others...

• ### A look at the EnterpriseDB Postgres data management platform

The EDB Postgres platform, which is based on the PostgreSQL open source relational database, is offered as a subscription service...

• ### Louisiana uses GIS software to create map to flood preparedness

The Louisiana Department of Health responded to flooding with the help of GIS software that located trouble spots with at-risk ...

• ### Creative projects leave people guessing about future impact of AI

A push is underway to write creative AI algorithms that can engage in music, film and design projects. So far, they have ...

• ### Data visualization plays an important role in a big data environment

Enterprises are increasingly putting data visualization tools, like Tableau, at the top of their big data platforms to start ...

## SearchSAP

• ### Does SAP ONE Support Launchpad make SAP support any easier to use?

The new Fiori user experience makes it easier to access applications and support services, but product-specific support still ...

• ### At SME Summit, SAP Anywhere growing pains revealed

Attendees at an SAP SME Summit lauded the e-commerce front end, but some said back-end integration and payment-processing ...

• ### Planning a HANA big data strategy with SAP HANA Vora

SAP has worked hard to position HANA as a big data platform. To formulate a viable big data strategy, you need to know the tools,...

## SearchSQLServer

• ### How to get the most out of virtual SQL Server with Microsoft Hyper-V

SQL Server is a CPU-intensive technology, which can make it tricky to run in a virtualized environment. Keep your SQL Server ...

• ### Microsoft previews SQL Server on Linux, opens features across editions

Microsoft looks to broaden the horizons of SQL Server, as it moves some Enterprise features to Standard Edition and issues the ...

• ### Cask framework aims to speed Azure HDInsight data pipeline builds

A link between Cask Data's CDAP application and integration environment and Azure HDInsight, Microsoft's Hadoop cloud service, is...

## TheServerSide

• ### DOES16 keynotes quantify the benefits of a DevOps transition

At the DevOps Enterprise Summit 2016, Tripwire founder Gene Kim stated his case on why every organization should embark upon a ...

• ### How Target improved software delivery by adopting DevOps processes

At the 2016 DevOps Enterprise Summit, Target's Heather Mickman describes the many ways the adoption of DevOps processes improved ...

## SearchDataCenter

• ### Compare benefits of a blade server architecture vs. hyper-convergence

To determine if a series of blade servers is the right call for more condensed compute in your data center, evaluate its benefits...

• ### A hyper-converged data center offers SDDC opportunity, IT scalability

Hyper-convergence can increase scalability and pave the way toward software-defined infrastructure. Use these five tips to learn ...

• ### OpenStack enterprise adoption still awaits full embrace

OpenStack in the enterprise is more likely to see continued adoption via vendor distributions and managed services, not the raw ...

## SearchContentManagement

• ### Five steps for designing an effective BI dashboard

The BI dashboard can be a very useful tool for data engagement if the dashboard is designed and used effectively. Here are five ...

• ### Examining the top offerings in the WCM platform marketplace

Once you've decided that a WCM platform is right for your business, it's time to decide which to choose. Expert Geoffrey Bock ...

• ### Why Microsoft Teams could change up the collaboration software market

Microsoft's new collaboration tool, Teams, could give Slack a run for its money. Expert Reda Chouffani offers a look at five ...

## SearchFinancialApplications

• ### No one-size-fits-all strategy for cloud ERP software migration

Experts say a cloud ERP transition plan will vary according to a variety of factors, from company size to an organization's ...

• ### HR video apps spreading beyond training to recruiting, engagement

Users say cost savings, faster turnaround and better corporate branding are some of the benefits from using video at more stages ...

• ### Microsoft picks SAP for core HCM tools and global talent management

Microsoft chooses SAP SuccessFactors for core HR and talent management, and SAP selects Microsoft Azure as a preferred public ...

Close