ODBC Scalar Functions (Transact-SQL)

Można używać funkcji skalarnych ODBC w instrukcjach Transact-SQL.Instrukcje te są interpretowane przez program SQL Server.Mogą być używane w procedurach składowanych i funkcjach definiowanych przez użytkownika.Dotyczy to funkcji tekstowych, liczbowych, godziny, daty, interwału i systemowych.

Sposób użycia

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

Funkcje

W poniższej tabeli wymieniono funkcje skalarne ODBC, które nie są zduplikowane w Transact-SQL.

Funkcje ciągów

Funkcja

Description

BIT_LENGTH( string_exp ) (ODBC 3.0)

E_APPDOMAIN_ZOMBIE

Działa nie tylko dla tekstowych typów danych.Dlatego wyrażenie string_exp nie zostanie bezpośrednio przekonwertowane na ciąg znaków, lecz zamiast tego zostanie zwrócony (wewnętrzny) rozmiar podanego typu danych.

CONCAT( string_exp1,string_exp2) (ODBC 1.0)

Zwraca ciąg znaków, będący połaczeniem wyrażeń string_exp2 i string_exp1.Ciąg wynikowy jest zależny od DBMS.Na przykład, jesli kolumna reprezentowana przez wyrażenie string_exp1 zawiera wartość NULL, to program DB2 zwróci wartość NULL, ale program SQL Server zwróci ciąg o wartości niebedącej NULL.

OCTET_LENGTH( string_exp ) (ODBC 3.0)

Zwraca długość wyrażenia tekstowego w bajtach.Wynikiem jest najmniejsza liczba całkowita nie mniejsza od liczby bitów podzielonej przez 8.

Działa nie tylko dla tekstowych typów danych.Dlatego wyrażenie string_exp nie zostanie bezpośrednio przekonwertowane na ciąg znaków, lecz zamiast tego zostanie zwrócony (wewnętrzny) rozmiar podanego typu danych.

Funkcja liczbowa

Funkcja

Description

TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0)

Zwraca wartość liczbową numeric_exp obciętą do integer_exp miejsc po przecinku.Jeśli integer_exp jest liczbą ujemną, wartość numeric_exp zostanie obcięta do |integer_exp| miejsc przed przecinkiem.

To procedura przechowywana zmienia się, czy określony profil jest profil domyślny dla użytkowników bazy danych.

Funkcja

Description

Użytkownik bazy danych mogą mieć tylko jeden domyślny profilu prywatnego.

Zwraca bieżącą datę.

CURRENT_TIME[( time-precision )] (ODBC 3.0)

Zwraca bieżącą godzinę lokalną.Argument time-precision określa dokładność sekundową zwracanej wartości.

Profil, który został uprzednio domyślny profil jest nadal skojarzona z głównej, ale nie jest już profil domyślny.

Returns a character string that contains the data source–specific name of the day (for example, Sunday through Saturday or Sun.through Sat.for a data source that uses English, or Sonntag through Samstag for a data source that uses German) for the day part of date_exp.

DAYOFMONTH( date_exp ) (ODBC 1.0)

Zwraca dzień miesiąca jako wartość z zakresu 1–31 na podstawie pola miesiąca w wyrażeniu date_exp.

DAYOFWEEK( date_exp ) (ODBC 1.0)

Zwraca dzień tygodnia jako wartość z zakresu 1–7 na podstawie pola tygodnia w wyrażeniu date_exp (1 oznacza niedzielę).

Profil musi być już skojarzony z głównej.

Widoki modułów zbierających dane (języka Transact-SQL)

Moduł zbierający dane oferuje następujące widoki do wyświetlania informacji o konfiguracja modułów zbierających dane, takie jak właściwości typ modułu zbierającego dane, zestawy kolekcji i kolekcji zestaw elementów, a także wykonywanie statystyk, które są uzyskiwane, gdy kolekcja jest uruchamiana.

Zwraca minuty jako wartość z zakresu 0–59 na podstawie minut w wyrażeniu time_exp.

To pozyskiwania zwiększa bezpieczeństwo poprzez zapobieganie bezpośredni dostęp do tabel, podczas pozwalających na zmiany w tabelach nie wpływa na wszystkie aplikacje skojarzone.

Returns a character string that contains the data source–specific name of the month (for example, January through December or Jan.through Dec.for a data source that uses English, or Januar through Dezember for a data source that uses German) for the month part of date_exp.

Opis datetimeoffset

DECLARE MyDatetimeoffset @

Formaty literału ciąg domyślnego (używany do klient niższego poziom)

Zwraca tydzień roku jako wartość z zakresu 1–53 na podstawie pola tygodnia w wyrażeniu date_exp.

Przykłady

A.Używanie funkcji ODBC w procedurach składowanych

-14: 00 do +14: 00

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

B.RRRR to cztery cyfry, począwszy od 0001 do 9999, które reprezentują w roku.

hh jest dwie cyfry, które należą do zakres od-14 do +14.

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 ;

SELECT dbo.ODBCudf('Returns the length.');
--Returns 38

C.mm jest dwie cyfry zakres od 00 do 59.

Następujące instrukcje SELECT pozwalają na używanie funkcji 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 MONTHNAME( @date_exp )};
-- Returns April
SELECT {fn QUARTER( @date_exp )};
-- Returns 2
SELECT {fn WEEK( @date_exp )};
-- Returns 16

See Also

Reference