Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base 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