Fonctions scalaires ODBC (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Vous pouvez utiliser Fonctions scalaires ODBC dans les instructions Transact-SQL. Ces instructions sont interprétées par SQL Server. Elles peuvent être utilisées dans les procédures stockées et les fonctions définies par l'utilisateur. Celles-ci incluent les fonctions de chaîne, numériques, d'heure, de date, d'intervalle et système.

Usage

SELECT {fn <function_name> [ (<argument>,....n) ] }

Fonctions

Les tableaux suivants répertorient les fonctions scalaires ODBC qui ne sont pas dupliquées dans Transact-SQL.

Fonctions de chaîne

Fonction Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en bits de l'expression de chaîne.

Retourne la taille interne du type de données indiqué, sans convertir string_exp en chaîne.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Retourne une chaîne de caractères qui est le résultat de la concaténation de string_exp2 à string_exp1. La chaîne résultante dépend de SGBD. Par exemple, si la colonne représentée par string_exp1 contenait une valeur NULL, DB2 retournerait NULL, mais SQL Server retournerait la chaîne non NULL.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en octets de l'expression de chaîne. Le résultat est le plus petit entier qui n'est pas inférieur au nombre de bits divisé par 8.

Retourne la taille interne du type de données indiqué, sans convertir string_exp en chaîne.

Fonction numérique

Fonction Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Retourne les positions numeric_exp tronquées en integer_exp à droite de la virgule décimale. Si integer_exp est négatif, les positions numeric_exp sont tronquées en |integer_exp| à gauche de la virgule décimale.

Fonctions d'heure, de date et d'intervalle

Fonction Description
CURRENT_DATE( ) (ODBC 3.0) Retourne la date du jour.
CURDATE( ) (ODBC 3.0) Retourne la date du jour.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Retourne l'heure locale actuelle. L'argument time-precision détermine la précision en secondes de la valeur retournée
CURTIME() (ODBC 3.0) Retourne l'heure locale actuelle.
DAYNAME( date_exp ) (ODBC 2.0) Retourne une chaîne de caractères qui contient le nom spécifique à la source de données du jour pour la partie jour de date_exp. Par exemple, le nom est dimanche à samedi ou dim à sam pour une source de données qui utilise le français. Le nom est Sonntag à Samstag pour une source de données qui utilise l’allemand.
DAYOFMONTH( date_exp ) (ODBC 1.0) Retourne le jour du mois basé sur le champ du mois dans date_exp comme valeur entière. La valeur de retour est comprise dans la plage 1 à 31.
DAYOFWEEK( date_exp ) (ODBC 1.0) Retourne le jour de la semaine basé sur le champ de la semaine dans date_exp comme valeur entière. La valeur de retour est comprise dans la plage 1 à 7, où 1 représente dimanche.
HOUR( time_exp ) (ODBC 1.0) Retourne l’heure basée sur le champ de l’heure dans time_exp comme valeur entière dans la plage 0 à 23.
MINUTE( time_exp ) (ODBC 1.0) Retourne la minute basée sur le champ de minute dans time_exp comme valeur entière dans la plage 0 à 59.
SECOND( time_exp ) (ODBC 1.0) Retourne la seconde basée sur le champ de seconde dans time_exp comme valeur entière dans la plage 0 à 59.
MONTHNAME( date_exp ) (ODBC 2.0) Retourne une chaîne de caractères qui contient le nom spécifique à la source de données du mois pour la partie mois de date_exp. Par exemple, le nom est janvier à décembre ou jan à déc pour une source de données qui utilise le français. Le nom est Januar à Dezember pour une source de données qui utilise l’allemand.
QUARTER( date_exp ) (ODBC 1.0) Retourne le trimestre dans date_exp comme valeur entière dans la plage 1 à 4, où 1 représente la période du 1er janvier au 31 mars.
WEEK( date_exp ) (ODBC 1.0) Retourne la semaine de l’année basée sur le champ de la semaine dans date_exp comme valeur entière dans la plage 1 à 53.

Exemples

R. Utilisation d'une fonction ODBC dans une procédure stockée

L'exemple ci-dessous utilise une fonction ODBC dans une procédure stockée.

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn OCTET_LENGTH( @string_exp )};  

B. Utilisation d'une fonction ODBC dans une fonction définie par l'utilisateur

L'exemple ci-dessous utilise une fonction ODBC dans une fonction définie par l'utilisateur :

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn OCTET_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length.');  
--Returns 38  

Notes

Microsoft Fabric prend en charge les fonctions scalaires ODBC, mais ne prend pas actuellement en charge les fonctions définies par l’utilisateur qui retournent des valeurs, comme illustré dans l’exemple B.

C. Utilisation de fonctions ODBC dans des instructions SELECT

Les instructions SELECT suivantes utilisent des fonctions ODBC :

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
SELECT {fn OCTET_LENGTH( @string_exp )};  
-- Returns 38  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn TRUNCATE( 100.123456, 4)};  
-- Returns 100.123400  
SELECT {fn CURRENT_DATE( )};  
-- Returns 2007-04-20  
SELECT {fn CURRENT_TIME(6)};  
-- Returns 10:27:11.973000  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

D. Utilisation d'une fonction ODBC dans une procédure stockée

L'exemple ci-dessous utilise une fonction ODBC dans une procédure stockée.

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn BIT_LENGTH( @string_exp )};  

E. Utilisation d'une fonction ODBC dans une fonction définie par l'utilisateur

L'exemple ci-dessous utilise une fonction ODBC dans une fonction définie par l'utilisateur :

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn BIT_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length in bits.');  
--Returns 432  

F. Utilisation de fonctions ODBC dans des instructions SELECT

Les instructions SELECT suivantes utilisent des fonctions ODBC :

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn CURRENT_DATE( )};  
-- Returns today's date  
SELECT {fn CURRENT_TIME(6)};  
-- Returns the time  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Voir aussi

Fonctions intégrées (Transact-SQL)