Fonctions scalaires ODBC (Transact-SQL)
S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse 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