Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Je kunt ODBC Scalar Functions gebruiken in Transact-SQL statements. Deze statements worden geïnterpreteerd door SQL Server. Ze kunnen worden gebruikt in opgeslagen procedures en door de gebruiker gedefinieerde functies. Deze omvatten string-, numeriek-, tijd-, datum-, interval- en systeemfuncties.
Usage
SELECT {fn <function_name> [ (<argument>,....n) ] }
Functions
De volgende tabellen geven ODBC-scalaire functies weer die niet worden gedupliceerd in Transact-SQL.
Stringfuncties
| Functie | Description |
|---|---|
| BIT_LENGTH( string_exp ) (ODBC 3.0) | Geeft de lengte in bits van de stringexpressie terug. Geeft de interne grootte van het gegeven datatype terug, zonder string_exp om te zetten in string. |
| CONCAT(string_exp1, string_exp2) (ODBC 1.0) | Geeft een tekenreeks terug die het resultaat is van het aanvoegen van string_exp2 aan string_exp1. De resulterende string is DBMS-afhankelijk. Als bijvoorbeeld de kolom die door string_exp1 wordt weergegeven een NULL-waarde bevat, zou DB2 NULL teruggeven, maar SQL Server zou de niet-NULL-string teruggeven. |
| OCTET_LENGTH( string_exp ) (ODBC 3.0) | Geeft de lengte in bytes van de stringexpressie terug. Het resultaat is het kleinste geheel getal niet minder dan het aantal bits gedeeld door 8. Geeft de interne grootte van het gegeven datatype terug, zonder string_exp om te zetten in string. |
Numerieke functie
| Functie | Description |
|---|---|
| TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) | Retouren numeric_exp afgeknott tot integer_exp posities rechts van het decimale punt. Als integer_exp negatief is, wordt numeric_exp afgekapt tot |integer_exp| posities links van het decimale punt. |
Tijd-, datum- en intervalfuncties
| Functie | Description |
|---|---|
| CURRENT_DATE( ) (ODBC 3.0) | Retourneert de huidige datum. |
| CURDATE( ) (ODBC 3.0) | Retourneert de huidige datum. |
CURRENT_TIME[( time-precision )] (ODBC 3.0) |
Geeft de huidige lokale tijd terug. Het tijdprecisie-argument bepaalt de secondenprecisie van de teruggegeven waarde |
| CURTIME() (ODBC 3.0) | Geeft de huidige lokale tijd terug. |
| DAYNAME( date_exp ) (ODBC 2.0) | Geeft een tekenreeks terug die de gegevensbron-specifieke naam van de dag bevat voor het dagdeel van date_exp. De naam is bijvoorbeeld Sunday tot en met Saturday of Sun. tot en met zaterdag. voor een databron die Engels gebruikt. De naam is Sonntag via Samstag voor een databron die Duits gebruikt. |
| DAG VAN MAAND( date_exp ) (ODBC 1.0) | Geeft de dag van de maand terug, gebaseerd op het maandveld in date_exp, als geheel getal. De rendementwaarde ligt in het bereik van 1-31. |
| WEEKDAG( date_exp ) (ODBC 1.0) | Geeft de dag van de week terug op basis van het weekveld in date_exp als geheel getal. De retourwaarde ligt tussen 1 en 7, waarbij 1 zondag vertegenwoordigt. |
| UUR( time_exp ) (ODBC 1.0) | Geeft het uur, gebaseerd op het uurveld in time_exp, terug als een geheel getal in het bereik van 0-23. |
| MINUUT( time_exp ) (ODBC 1.0) | Geeft de minuut terug, gebaseerd op het minuutveld in time_exp, als een geheel getal in het bereik van 0-59. |
| TWEEDE( time_exp ) (ODBC 1.0) | Geeft de tweede terug, gebaseerd op het tweede veld in time_exp, als een geheel getal in het bereik van 0-59. |
| MAANDNAAM( date_exp ) (ODBC 2.0) | Geeft een tekenreeks terug die de gegevensbron-specifieke naam van de maand bevat voor het maanddeel van date_exp. De naam is bijvoorbeeld januari tot december of januari tot en met december voor een databron die Engels gebruikt. De naam is januari tot en met december voor een databron die Duits gebruikt. |
| KWART( date_exp ) (ODBC 1.0) | Geeft het kwartaal in date_exp terug als een geheel getal in het bereik van 1-4, waarbij 1 staat voor 1 januari tot en met 31 maart. |
| WEEK( date_exp ) (ODBC 1.0) | Geeft de week van het jaar terug, gebaseerd op het weekveld in date_exp, als een geheel getal in het bereik van 1-53. |
Voorbeelden
Eén. Het gebruik van een ODBC-functie in een opgeslagen procedure
Het volgende voorbeeld gebruikt een ODBC-functie in een opgeslagen procedure:
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn OCTET_LENGTH( @string_exp )};
B. Gebruik van een ODBC-functie in een door de gebruiker gedefinieerde functie
Het volgende voorbeeld gebruikt een ODBC-functie in een door de gebruiker gedefinieerde functie:
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
Opmerking
Microsoft Fabric ondersteunt ODBC-scalaire functies, maar ondersteunt momenteel geen door de gebruiker gedefinieerde functies die waarden teruggeven, zoals getoond in Voorbeeld B.
C. Gebruik van ODBC-functies in SELECT-instructies
De volgende SELECT-instructies gebruiken ODBC-functies:
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
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
D. Het gebruik van een ODBC-functie in een opgeslagen procedure
Het volgende voorbeeld gebruikt een ODBC-functie in een opgeslagen procedure:
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn BIT_LENGTH( @string_exp )};
E. Gebruik van een ODBC-functie in een door de gebruiker gedefinieerde functie
Het volgende voorbeeld gebruikt een ODBC-functie in een door de gebruiker gedefinieerde functie:
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. Gebruik van ODBC-functies in SELECT-instructies
De volgende SELECT-instructies gebruiken ODBC-functies:
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