• subscribe
July 20, 2006 12:00 AM

Handy CLR Functions That You Can Call from T-SQL Code

SQL Server Pro
InstantDoc ID #50251
Downloads
50251.zip

I created Common Language Runtime (CLR) string functions that you can call from T-SQL,Visual Basic (VB),Visual C#, or Visual C++ code. Here's a list of the string functions and what they do:

  • AT(): Returns the beginning numeric position of the nth occurrence of a string within an expression, counting from the leftmost character.
  • RAT(): Returns the numeric position of the last (rightmost) occurrence of a string within an expression.
  • OCCURS(): Returns the number of times a string occurs within an expression, including overlaps.
  • OCCURS2(): Returns the number of times a string occurs within an expression, excluding overlaps.
  • PADL(): Returns a string of a specified length (padded with spaces or characters if needed) from the left side of an expression.
  • PADR(): Returns a string of a specified length (padded with spaces or characters if needed) from the right side of an expression.
  • PADC(): Returns a string of a specified length (padded with spaces or characters if needed) from both sides of an expression.
  • CHRTRAN(): Replaces each character in an expression that matches a character in a second expression with the corresponding character in a third expression.
  • STRTRAN(): Searches an expression for occurrences of a second expression, then replaces each occurrence with a third expression. STRTRAN() is similar to the T-SQL REPLACE function, except STRTRAN() has three additional parameters to help refine searches.
  • STRFILTER(): Removes all characters from a string except those specified.
  • GETWORDCOUNT(): Counts the words in a string.
  • GETWORDNUM(): Returns a specified word from a string.
  • GETALLWORDS(): Inserts the words from a string into a table.
  • PROPER(): Returns from an expression a string capitalized as appropriate for proper names.
  • RCHARINDEX(): Returns the starting position of the specified string in an expression. Is similar to the T-SQL CHARINDEX function, except the search starts from the right instead of the left.
  • ARABTOROMAN(): Returns the Roman numeral equivalent of a specified numeric expression (from 1 to 3999).
  • ROMANTOARAB(): Returns the number equivalent of a specified Roman numeral expression (from I to MMMCMXCIX).

You'll find these 17 functions in the UDFs_Transact-SQL.zip file, which you can download from the SQL Server Magazine Web site or the Universalthread Web site (http://www.universalthread.com/wconnect/wc.dll?LevelExtreme~2,54,33,29527). The UDFs_Transact-SQL.zip file includes .chm files in English, French, Spanish, German, and Russian.

To create these functions in a SQL Server 2005 database, follow these steps:

  1. Open the appropriate T-SQL file (create_udfs_functions_VB.sql for VB, create_udfs_functions_CS.sql forVisual C#, or create_udfs_functions_CPP.sql for Visual C++).
  2. In theT-SQL file, set the path to appropriate DLL file (udfs_transact-sql_vb.dll for VB, udfs_transact-sql_cs.dll for Visual C#, or udfs_transact-sql_ cplusplus.dll for Visual C++).
  3. Execute the appropriate T-SQL file.

To delete the functions, open the drop_ udfs_functions_CLR.sql file and execute it.

Besides the versions for SQL Server 2005 T-SQL CLR, you'll find versions for SQL Server T-SQL, Sybase Adaptive Server Anywhere (ASA) T-SQL, DB2 Procedural Language/SQL(PL/SQL), and Oracle PL/SQL on the Universalthread Web site. More than 10,000 people have already downloaded the functions.



ARTICLE TOOLS

Comments
    There are no comments to display. Be the first one!
You must log on before posting a comment.

Are you a new visitor? Register Here
  • SP1?
    I know there is a SP1 for SQL 2008 R2 available....and there is a "feature pack" as well... ...
  • SQL database mirroring
    I have SQL Server 2008 R2 Enterprise 64bit on Windows 2008 R2 Enterprise 64bit.  Each SQL Server has...
  • Dell Compellent Disk Drive
    Does anybody has experience with Dell Compellent Disk Drive? Basically, this system manages all disk...
  • Sql server performance tuning
    I need to find a tool that help me to optimize sql server,queries,improve the performance and solve ...