ODBC 스칼라 함수(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
Transact-SQL 문에서 ODBC 스칼라 함수를 사용할 수 있습니다. 이러한 문은 SQL Server에서 해석됩니다. 저장 프로시저 및 사용자 정의 함수에서 사용할 수 있습니다. 여기에는 문자열, 숫자, 시간, 날짜, 간격, 시스템 함수가 포함됩니다.
사용
SELECT {fn <function_name> [ (<argument>,....n) ] }
함수
다음 표에는 Transact-SQL에서 중복되지 않은 ODBC 스칼라 함수가 나와 있습니다.
문자열 함수
함수 | 설명 |
---|---|
BIT_LENGTH(string_exp)(ODBC 3.0) | 문자열 식의 길이를 비트로 반환합니다. string_exp 문자열로 변환하지 않고 지정된 데이터 형식의 내부 크기를 반환합니다. |
CONCAT( string_exp1,string_exp2)(ODBC 1.0) | string_exp2와 string_exp1의 연결 결과인 문자열을 반환합니다. 결과 문자열은 DBMS 종속 문자열입니다. 예를 들어 string_exp1 나타내는 열에 NULL 값이 포함된 경우 DB2는 NULL을 반환하지만 SQL Server는 NULL이 아닌 문자열을 반환합니다. |
OCTET_LENGTH( string_exp ) (ODBC 3.0) | 문자열 식의 길이(바이트)를 반환합니다. 결과는 8로 나눈 비트 수보다 작지 않은 가장 작은 정수입니다. string_exp 문자열로 변환하지 않고 지정된 데이터 형식의 내부 크기를 반환합니다. |
숫자 함수
함수 | 설명 |
---|---|
TRUNCATE( numeric_exp, integer_exp)(ODBC 2.0) | 소수점 오른쪽의 integer_exp 위치로 잘린 numeric_exp 반환합니다. integer_exp 음수이면 numeric_exp |integer_exp|으로 잘립니다. 는 소수점 왼쪽에 위치합니다. |
시간, 날짜 및 간격 함수
함수 | 설명 |
---|---|
CURRENT_DATE( ) (ODBC 3.0) | 현재 날짜를 반환합니다. |
CURDATE( ) (ODBC 3.0) | 현재 날짜를 반환합니다. |
[( time-precision )] CURRENT_TIME(ODBC 3.0) |
현재 현지 시간을 반환합니다. 시간 정밀도 인수는 반환된 값의 초 정밀도를 결정합니다. |
CURTIME() (ODBC 3.0) | 현재 현지 시간을 반환합니다. |
DAYNAME( date_exp ) (ODBC 2.0) | date_exp 일 부분에 대한 날짜의 데이터 원본별 이름을 포함하는 문자열을 반환합니다. 예를 들어 이름은 일요일부터 토요일까지 또는 일요일입니다. 토를 통해. 는 영어를 사용하는 데이터 원본의 경우 이름은 독일어를 사용하는 데이터 원본의 Samstag를 통한 Sonntag입니다. |
DAYOFMONTH( date_exp ) (ODBC 1.0) | date_exp의 월 필드를 기준으로 해당 월을 정수로 반환합니다. 반환 값은 1-31 범위에 있습니다. |
DAYOFWEEK( date_exp ) (ODBC 1.0) | date_exp 주 필드를 기준으로 요일을 정수로 반환합니다. 반환 값은 1-7 범위이며 여기서 1은 일요일을 나타냅니다. |
HOUR( time_exp ) (ODBC 1.0) | time_exp 시간 필드를 기준으로 0-23 범위의 정수 값으로 시간을 반환합니다. |
MINUTE( time_exp) (ODBC 1.0) | time_exp 분 필드를 기준으로 분을 0-59 범위의 정수 값으로 반환합니다. |
SECOND( time_exp ) (ODBC 1.0) | time_exp 두 번째 필드를 기준으로 두 번째 필드를 0-59 범위의 정수 값으로 반환합니다. |
MONTHNAME( date_exp ) (ODBC 2.0) | date_exp 월 부분에 대한 월의 데이터 원본별 이름을 포함하는 문자열을 반환합니다. 예를 들어, 영어를 사용하는 데이터 원본의 이름은 1월에서 12월 사이 또는 1월부터 12월까지입니다. 이름은 독일어를 사용하는 데이터 원본의 경우 Dezember를 통해 Januar입니다. |
QUARTER( date_exp) (ODBC 1.0) | date_exp의 분기를 1에서 4 사이의 정수 값으로 반환합니다. 이 경우 1은 1월 1일에서 3월 31일까지를 나타냅니다. |
WEEK( date_exp ) (ODBC 1.0) | date_exp 주 필드를 기반으로 한 연도의 주를 1-53 범위의 정수 값으로 반환합니다. |
예제
A. 저장 프로시저에서 ODBC 함수 사용
다음 예제에서는 저장 프로시저에서 ODBC 함수를 사용합니다.
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn OCTET_LENGTH( @string_exp )};
B. 사용자 정의 함수에서 ODBC 함수 사용
다음 예제에서는 사용자 정의 함수에서 ODBC 함수를 사용합니다.
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
참고 항목
Microsoft Fabric은 ODBC 스칼라 함수를 지원하지만, 현재는 예제 B와 같이 값을 반환하는 사용자 정의 함수를 지원하지 않습니다.
C. SELECT 문에서 ODBC 함수 사용
다음 SELECT 문에서는 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
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
D. 저장 프로시저에서 ODBC 함수 사용
다음 예제에서는 저장 프로시저에서 ODBC 함수를 사용합니다.
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn BIT_LENGTH( @string_exp )};
E. 사용자 정의 함수에서 ODBC 함수 사용
다음 예제에서는 사용자 정의 함수에서 ODBC 함수를 사용합니다.
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. SELECT 문에서 ODBC 함수 사용
다음 SELECT 문에서는 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