Partilhar via


Funções Escalares ODBC (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Pode usar Funções Escalares ODBC em Transact-SQL sentenças. Estas instruções são interpretadas pelo SQL Server. Podem ser usados em procedimentos armazenados e funções definidas pelo utilizador. Estas incluem funções de string, numéricas, hora, data, intervalo e do sistema.

Usage

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

Funções

As tabelas seguintes listam funções escalares ODBC que não são duplicadas no Transact-SQL.

Funções de cadeia de caracteres

Função Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Devolve o comprimento em bits da expressão da cadeia.

Devolve o tamanho interno do tipo de dado dado, sem converter string_exp para string.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Devolve uma cadeia de caracteres que resulta da concatenação de string_exp2 para string_exp1. A cadeia resultante depende do SGBD. Por exemplo, se a coluna representada por string_exp1 contivesse um valor NULL, o DB2 devolveria NULL, mas o SQL Server devolveria a cadeia não-NULL.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Devolve o comprimento em bytes da expressão da cadeia. O resultado é o menor número inteiro, não inferior ao número de bits dividido por 8.

Devolve o tamanho interno do tipo de dado dado, sem converter string_exp para string.

Função Numérica

Função Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Devolve numeric_exp truncado para integer_exp posições à direita da vírgula decimal. Se integer_exp for negativo, numeric_exp é truncado para |integer_exp| posições à esquerda da vírgula decimal.

Funções de hora, data e intervalo

Função Description
CURRENT_DATE( ) (ODBC 3.0) Devolve a data atual.
CURDATE( ) (ODBC 3.0) Devolve a data atual.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Devolve a hora local atual. O argumento da precisão temporal determina a precisão dos segundos do valor devolvido
CURTIME() (ODBC 3.0) Devolve a hora local atual.
NOME DO DIA( date_exp ) (ODBC 2.0) Devolve uma cadeia de caracteres que contém o nome específico da fonte de dados do dia para a parte do dia de date_exp. Por exemplo, o nome é de domingo a sábado ou domingo. até sábado. para uma fonte de dados que utiliza inglês. O nome é Sonntag através de Samstag para uma fonte de dados que usa alemão.
DAYOFMONTH ( date_exp ) (ODBC 1.0) Devolve o dia do mês, com base no campo do mês em date_exp, como um inteiro. O valor de retorno situa-se entre 1 e 31.
DAYOFWEEK ( date_exp ) (ODBC 1.0) Devolve o dia da semana com base no campo semanal em date_exp como um inteiro. O valor de retorno situa-se na faixa de 1 a 7, onde 1 representa o domingo.
HORA( time_exp ) (ODBC 1.0) Devolve a hora, com base no campo de horas em time_exp, como um valor inteiro no intervalo de 0 a 23.
MINUTE( time_exp ) (ODBC 1.0) Devolve o minuto, com base no campo minuto em time_exp, como um valor inteiro no intervalo de 0 a 59.
SEGUNDO( time_exp ) (ODBC 1.0) Devolve o segundo, com base no segundo campo em time_exp, como um valor inteiro no intervalo de 0 a 59.
MÊSNAME( date_exp ) (ODBC 2.0) Devolve uma cadeia de caracteres que contém o nome específico da fonte de dados do mês da parte do mês de date_exp. Por exemplo, o nome é de janeiro a dezembro ou de janeiro a dezembro para uma fonte de dados que usa inglês. O nome é de janeiro até dezembro para uma fonte de dados que usa alemão.
QUARTER( date_exp ) (ODBC 1.0) Devolve o trimestre em date_exp como um valor inteiro no intervalo de 1 a 4, onde 1 representa de 1 de janeiro a 31 de março.
SEMANA( date_exp ) (ODBC 1.0) Devolve a semana do ano, com base no campo semanal em date_exp, como um valor inteiro no intervalo de 1 a 53.

Examples

A. Utilização de uma função ODBC num procedimento armazenado

O exemplo seguinte utiliza uma função ODBC num procedimento armazenado:

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

B. Utilização de uma função ODBC numa função definida pelo utilizador

O exemplo seguinte utiliza uma função ODBC numa função definida pelo utilizador:

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  

Observação

O Microsoft Fabric suporta funções escalares ODBC, mas atualmente não suporta funções definidas pelo utilizador que devolvam valores, como mostrado no Exemplo B.

C. Utilização de funções ODBC em instruções SELECT

As seguintes instruções SELECT utilizam funções 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  

Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Utilização de uma função ODBC num procedimento armazenado

O exemplo seguinte utiliza uma função ODBC num procedimento armazenado:

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

E. Utilização de uma função ODBC numa função definida pelo utilizador

O exemplo seguinte utiliza uma função ODBC numa função definida pelo utilizador:

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. Utilização de funções ODBC em instruções SELECT

As seguintes instruções SELECT utilizam funções 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  

Ver também

Funções incorporadas (Transact-SQL)