Solved

Need help converting simple function in SQL Server from Oracle...

Posted on 2009-05-14
5
226 Views
Last Modified: 2012-05-07
I am an Oracle PL/SQL guy but have hit an issue in trying to get this function converted to SQL Server.

The TO_CHAR piece of this doesn't exist (among other things).

Can someone please help me convert this?

Thanks in advance!

B
CREATE OR REPLACE FUNCTION format_sequence (p_number IN INTEGER)
    RETURN VARCHAR2
IS
    v_num   INTEGER := FLOOR (p_number / 1000);
BEGIN
    RETURN    CHR (FLOOR (v_num / (26 * 26)) + 65)
           || CHR (FLOOR (MOD (v_num, 26 * 26) / 26) + 65)
           || CHR (MOD (v_num, 26) + 65)
           || TO_CHAR (MOD (p_number, 1000), 'fm000');
END;

Open in new window

0
Comment
Question by:cyimxtck
  • 3
  • 2
5 Comments
 
LVL 41

Accepted Solution

by:
pcelba earned 500 total points
ID: 24388236
The function is here:
USE [Expres]
GO
/****** Object:  UserDefinedFunction [dbo].[format_sequence]    Script Date: 05/14/2009 20:53:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[format_sequence] 
(
	-- Add the parameters for the function here
	@p_number int
)
RETURNS varchar(6)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ResultVar varchar(6)
	DECLARE @v_num int
	
	SET @v_num = FLOOR (@p_number / 1000)
 
    SET @ResultVar = CHAR (FLOOR (@v_num / (26 * 26)) + 65)
           + CHAR (FLOOR ((@v_num % (26 * 26)) / 26) + 65)
           + CHAR (@v_num % 26 + 65)
           + REPLACE(STR (@p_number % 1000, 3, 0),' ','0')
 
	-- Return the result of the function
	RETURN @ResultVar
 
END

Open in new window

0
 

Author Comment

by:cyimxtck
ID: 24388389
PERFECT and exactly what I needed.

Thank you so much!!!!
0
 

Author Closing Comment

by:cyimxtck
ID: 31581597
Perfect in every way!
0
 
LVL 41

Expert Comment

by:pcelba
ID: 24388419
The
USE [Expres]
GO
at the beginning should be replaced by your database name.

If you'll modify this function, you have to change
CREATE FUNCTION
to
ALTER FUNCTION
0
 

Author Comment

by:cyimxtck
ID: 24388431
I have already done that (so different than Oracle) but thank you so much!

B
0

Featured Post

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Audit has been really one of the more interesting, most useful, yet difficult to maintain topics in the history of SQL Server. In earlier versions of SQL people had very few options for auditing in SQL Server. It typically meant using SQL Trace …
SQL Server engine let you use a Windows account or a SQL Server account to connect to a SQL Server instance. This can be configured immediatly during the SQL Server installation or after in the Server Authentication section in the Server properties …
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question