스포츠 토토 베트맨 만들기 - 새 스포츠 토토 베트맨 정의
CREATE CAST (source_type
astarget_type
)function_name
[(argument_type
[, ...])]source_type
astarget_type
)source_type
astarget_type
)
스포츠 토토 베트맨 만들기
새 출연진을 정의합니다. 스포츠 토토 베트맨는 두 데이터 유형 사이의 변환을 수행하는 방법을 지정합니다.
CAST (42 AS float8); 선택
정수 상수 42를 유형으로 변환float8
이전에 지정된 기능을 호출 하여이 경우float8 (int4)
. (적절한 스포츠 토토 베트맨가 정의되지 않으면 변환이 실패합니다.)
두 가지 유형이 될 수 있습니다이진 강압, 이는 변환을 수행 할 수 있음을 의미“무료”함수를 호출하지 않고. 이를 위해서는 해당 값이 동일한 내부 표현을 사용해야합니다.텍스트
andvarchar
이진은 두 가지 방법으로 강요 할 수 있습니다. 이진 강압은 반드시 대칭 관계는 아닙니다.XML
to텍스트
현재 구현에서 무료로 수행 할 수 있지만, 역 방향에는 적어도 구문 검사를 수행하는 함수가 필요합니다. (이진 강압이있는 두 가지 유형 모두 이진 호환이라고도합니다.)
스포츠 토토 베트맨를 A로 정의 할 수 있습니다I/O 변환 스포츠 토토 베트맨사용하여with inout
구문. I/O 변환 스포츠 토토 베트맨는 소스 데이터 유형의 출력 기능을 호출하고 결과 문자열을 대상 데이터 유형의 입력 함수로 전달하여 수행됩니다.
기본적으로, 명시적인 스포츠 토토 베트맨 요청에 의해서만 스포츠 토토 베트맨를 호출 할 수 있습니다.cast (
또는x
astypename
)x
::
typename
구성.
스포츠 토토 베트맨가 표시된 경우과제
그런 다음 대상 데이터 유형의 열에 값을 할당 할 때 암시 적으로 호출 할 수 있습니다. 예를 들어, 그렇게 가정foo.f1
유형의 열텍스트
, 다음 :
foo (f1) 값 (42);에 삽입
유형에서 스포츠 토토 베트맨가 있으면 허용됩니다Integer
to Type텍스트
표시과제
, 그렇지 않으면. (우리는 일반적으로 용어를 사용합니다과제 스포츠 토토 베트맨이런 종류의 스포츠 토토 베트맨를 설명하려면)
스포츠 토토 베트맨가 표시된 경우암시 적
그러면 과제 또는 내부적으로 표현식에서 어떤 맥락에서도 암시 적으로 호출 될 수 있습니다. (우리는 일반적으로 용어를 사용합니다암시 적 스포츠 토토 베트맨이런 종류의 스포츠 토토 베트맨를 설명하려면) 예를 들어이 쿼리를 고려하십시오.
2 + 4.0; 선택
파서는 처음에 상수를 유형으로 표시합니다Integer
and숫자
각각. 없음정수
+
숫자
시스템 카탈로그의 연산자이지만 A가 있습니다.숫자
+
숫자
운영자. 따라서 쿼리는에서 스포츠 토토 베트맨되면 성공합니다.Integer
to숫자
사용 가능하고 표시암시 적
- 실제로. 파서는 암시 적 스포츠 토토 베트맨를 적용하고 쿼리가 작성된 것처럼 쿼리를 해결합니다
SELECT CAST (2 AS 숫자) + 4.0;
14965_15010숫자
toInteger
. 그 스포츠 토토 베트맨가 표시되면암시 적
- 그렇지 않습니다 - 파서는 위의 해석과 주조의 대안 중에서 선택하는 데 직면하게됩니다.숫자
Constant to정수
그리고 적용Integer
+
Integer
운영자. 선호하는 선택에 대한 지식이 부족하여 쿼리를 모호하게 포기하고 선언 할 것입니다.숫자
-and-Integer
표현 AS숫자
; 그것에 대한 지식이 내장되어 있지 않습니다.
스포츠 토토 베트맨를 암시 적으로 표시하는 것에 대해 보수적 인 것이 현명합니다. 암시 적 주조 경로의 과잉이 유발할 수 있습니다PostgreSQL명령에 대한 놀라운 해석을 선택하거나 여러 가지 가능한 해석이 있기 때문에 명령을 전혀 해결할 수 없습니다. 경험의 좋은 규칙은 동일한 일반 유형 범주의 유형간에 정보 보존 변환을 위해 암시 적으로 만 스포츠 토토 베트맨를 촉구 할 수 있도록하는 것입니다.int2
toint4
합리적으로 암시적일 수 있지만float8
toint4
아마도 과제 전용이어야합니다. 과 같은 크로스 유형 카테고리 스포츠 토토 베트맨텍스트
toint4
, 명시 적 전용이 가장 좋습니다.
때로는 유용성 또는 표준 준수 이유가 일련의 유형 사이에 여러 가지 암시 적 스포츠 토토 베트맨를 제공하는 데 필요한 이유가 필요하며, 위와 같이 피할 수없는 모호성을 초래합니다. 파서는에 기반한 폴백 휴리스틱을 가지고 있습니다.유형 카테고리and선호 유형그러한 경우에 원하는 행동을 제공하는 데 도움이 될 수 있습니다. 보다유형 생성자세한 내용은
스포츠 토토 베트맨를 만들 수 있으려면 소스 또는 대상 데이터 유형을 소유하고 있어야합니다usage
다른 유형의 특권. 이진적 대응하는 스포츠 토토 베트맨를 만들려면 슈퍼 사용자가되어야합니다.
source_type
스포츠 토토 베트맨의 소스 데이터 유형의 이름.
target_type
스포츠 토토 베트맨의 대상 데이터 유형의 이름.
function_name
[(argument_type
[, ...])]
스포츠 토토 베트맨를 수행하는 데 사용되는 함수. 함수 이름은 스키마 자격을 얻을 수 있습니다.
기능없이
소스 유형이 대상 유형에 이진을 통합 할 수 있으므로 스포츠 토토 베트맨를 수행하는 데 기능이 필요하지 않음을 나타냅니다..
with inout
스포츠 토토 베트맨는 소스 데이터 유형의 출력 기능을 호출하여 수행 된 I/O 변환 스포츠 토토 베트맨임을 나타냅니다. 결과 문자열을 대상 데이터 유형의 입력 기능으로 전달합니다..
과제
는 과제 컨텍스트에서 스포츠 토토 베트맨가 암시 적으로 호출 될 수 있음을 나타냅니다.
암시 적
어떤 상황에서도 스포츠 토토 베트맨가 암시 적으로 호출 될 수 있음을 나타냅니다.
스포츠 토토 베트맨 구현 함수는 1 ~ 3 개의 인수를 가질 수 있습니다. 첫 번째 인수 유형은 스포츠 토토 베트맨의 소스 유형과 동일하거나 이진을 통합 할 수 있어야합니다.Integer
; 대상 유형과 관련된 유형 수정자를 수신하거나-1
없는 경우. 세 번째 인수는 존재하는 경우 유형이어야합니다부울
; 수신true
스포츠 토토 베트맨가 명시적인 스포츠 토토 베트맨 인 경우거짓
그렇지 않으면. (기괴하게, SQL 표준은 경우에 따라 명시적이고 암시적인 스포츠 토토 베트맨에 대해 다른 동작을 요구합니다.이 주장은 그러한 스포츠 토토 베트맨를 구현 해야하는 기능에 제공되어 있습니다.이 문제가 중요하도록 고유 한 데이터 유형을 설계하는 것이 좋습니다.).
스포츠 토토 베트맨 함수의 리턴 유형은 스포츠 토토 베트맨의 대상 유형과 동일하거나 이진을 통합 할 수 있어야합니다.
일반적으로 스포츠 토토 베트맨는 다른 소스와 대상 데이터 유형이 있어야합니다. 그러나 하나 이상의 인수가있는 스포츠 토토 베트맨 구현 기능이있는 경우 동일한 소스 및 대상 유형이있는 스포츠 토토 베트맨를 선언 할 수 있습니다.
스포츠 토토 베트맨가 다른 소스와 대상 유형과 하나 이상의 인수를 취하는 함수를 갖는 경우, 한 유형에서 다른 유형에서 다른 유형으로 변환하고 단일 단계에서 길이 강요를 적용하는 것을 지원합니다. 그러한 항목이 없으면 유형 수정자를 사용하는 유형에 대한 강요는 두 개의 스포츠 토토 베트맨 단계가 포함됩니다. 하나는 데이터 유형 사이에서 1 초를 변환하고 1 초는 수정자를 적용합니다.
도메인 유형에 대한 스포츠 토토 베트맨는 현재 영향을 미치지 않습니다. 도메인으로 또는 주조는 기본 유형과 관련된 스포츠 토토 베트맨를 사용합니다.
use스포츠 토토 : 문서 :사용자 정의 스포츠 토토 베트맨를 제거하려면
유형을 모두 변환하려면 두 가지 방법을 모두 선언 해야하는 경우 두 가지 방법을 명시 적으로 선언해야합니다.
일반적으로 사용자 정의 유형과 표준 문자열 유형 사이에 스포츠 토토 베트맨를 생성 할 필요는 없습니다 (텍스트
,Varchar
및char (
, 문자열 범주에 정의 된 사용자 정의 유형).PostgreSQL이를 위해 자동 I/O 변환 스포츠 토토 베트맨를 제공합니다. 자동 스포츠 토토 베트맨 대 문자열 유형은 할당 스포츠 토토 베트맨로 취급되는 반면 문자열 유형의 자동 스포츠 토토 베트맨는 명시 적 전용입니다.n
)
필수는 아니지만 대상 데이터 유형 이후 스포츠 토토 베트맨 구현 기능을 명명하는이 기존 협약을 계속 따르는 것이 좋습니다. 많은 사용자가 기능 스타일 표기법을 사용하여 데이터 유형을 스포츠 토토 베트맨 할 수 있습니다. 즉typename
(x
). 이 표기법은 사실 스포츠 토토 베트맨 구현 함수의 호출보다 훨씬 적거나 그 이상입니다.PostgreSQL다른 인수 유형으로 동일한 함수 이름을 과부하 할 수 있으므로 대상 유형의 이름을 사용하는 다른 유형의 여러 변환 기능을 갖는 데 어려움이 없습니다..
실제로 앞의 단락은 지나치게 단순화 된 것입니다. 함수 콜 구성이 실제 함수와 일치하지 않고 스포츠 토토 베트맨 요청으로 처리되는 두 가지 사례가 있습니다. 함수 호출 인 경우이름
(x
)는 기존 기능과 정확히 일치하지 않지만이름
| 데이터 유형의 이름이며PG_CAST
|이 유형의 유형에서 이진적 통합 스포츠 토토 베트맨를 제공x
, 호출은 이진적 통합 스포츠 토토 베트맨로 해석됩니다. 이 예외는 기능이 부족하더라도 기능적 구문을 사용하여 이진 통합 스포츠 토토 베트맨를 호출 할 수 있도록 이루어집니다.PG_CAST
입장이지만 스포츠 토토 베트맨는 문자열 유형에 있거나 이루어지면 호출은 I/O 변환 스포츠 토토 베트맨로 해석됩니다. 이 예외는 기능 구문을 사용하여 I/O 변환 스포츠 토토 베트맨를 호출 할 수 있습니다.
예외에 대한 예외도 있습니다. 복합 유형에서 문자열 유형으로의 I/O 변환 스포츠 토토 베트맨는 기능 구문을 사용하여 호출 할 수 없지만 명시 적 스포츠 토토 베트맨 구문으로 작성해야합니다 (스포츠 토토 베트맨
또는::
표기법). 이 예외는 자동으로 제공되는 I/O 변환 스포츠 토토 베트맨를 도입 한 후 함수 또는 열 참조가 의도 된 경우 실수로 그러한 스포츠 토토 베트맨를 호출하기가 너무 쉬워 졌기 때문에 추가되었습니다..
Type에서 할당 스포츠 토토 베트맨를 작성하려면bigint
to Typeint4
함수 사용int4 (bigint)
:
함수 int4 (bigint)가 할당 된 상태로 CAST (bigint as int4) 만들기;
(이 스포츠 토토 베트맨는 이미 시스템에서 사전 정의되어 있습니다.)
the스포츠 토토 베트맨 만들기
명령은에 부합합니다.SQL표준, SQL이 이진 통합 유형 또는 구현 함수에 대한 추가 인수에 대한 조항을 제외하고는 표준입니다.암시 적
isPostgreSQL확장도.