토토 사이트 순위 만들기 - 새 토토 사이트 순위 정의
CREATE CAST (source_type
astarget_type
) 함수function_name
[(argument_type
[, ...])] [과제 | 암시 적] CAST CAST (source_type
astarget_type
) 기능없이 [과제 | 암시 적] CAST CAST (source_type
astarget_type
) Inout과 함께 [과제 | 암시 적으로]
토토 사이트 순위 만들기
새 출연진을 정의합니다. 토토 사이트 순위는 두 데이터 유형 사이의 변환을 수행하는 방법을 지정합니다. 예를 들어,
CAST (42 AS float8); 선택
정수 상수 42를 유형으로 변환float8
이전에 지정된 함수를 호출 하여이 경우float8 (int4)
. (적절한 토토 사이트 순위가 정의되지 않으면 변환이 실패합니다.)
두 가지 유형이 될 수 있습니다이진 강압, 이는 변환을 수행 할 수 있음을 의미“무료”함수를 호출하지 않고. 이를 위해서는 해당 값이 동일한 내부 표현을 사용해야합니다. 예를 들어, 유형텍스트
andvarchar
이진은 두 가지 방법으로 강요 할 수 있습니다. 이진 강압은 반드시 대칭 관계는 아닙니다. 예를 들어, 토토 사이트 순위XML
to텍스트
현재 구현에서 무료로 수행 할 수 있지만 역 방향에는 적어도 구문 검사를 수행하는 기능이 필요합니다. (이진 강압이있는 두 가지 유형 모두 이진 호환이라고도합니다.)
토토 사이트 순위를 A로 정의 할 수 있습니다I/O 변환 토토 사이트 순위사용하여inout
구문. I/O 변환 토토 사이트 순위는 소스 데이터 유형의 출력 기능을 호출하고 결과 문자열을 대상 데이터 유형의 입력 함수로 전달하여 수행됩니다. 많은 일반적인 경우,이 기능은 전환을 위해 별도의 토토 사이트 순위 함수를 작성할 필요가 없습니다. I/O 변환 토토 사이트 순위는 일반 기능 기반 토토 사이트 순위와 동일하게 행동합니다. 구현 만 다릅니다.
기본적으로, 명시 적 토토 사이트 순위 요청에 의해서만 토토 사이트 순위를 호출 할 수 있습니다.cast (
또는x
astypename
)x
::
typename
구성.
토토 사이트 순위가 표시된 경우과제
그러면 대상 데이터 유형의 열에 값을 할당 할 때 암시 적으로 호출 될 수 있습니다. 예를 들어, 그렇게 가정foo.f1
유형의 열텍스트
, 다음 :
foo (f1) 값 (42);에 삽입
유형에서 토토 사이트 순위가 있으면 허용됩니다정수
to Type텍스트
표시과제
, 그렇지 않으면. (우리는 일반적으로 용어를 사용합니다과제 토토 사이트 순위이런 종류의 토토 사이트 순위를 설명하려면)
토토 사이트 순위가 표시된 경우암시 적
그러면 과제 또는 내부적으로 표현식에서 어떤 맥락에서도 암시 적으로 호출 될 수 있습니다. (우리는 일반적으로 용어를 사용합니다암시 적 토토 사이트 순위이런 종류의 토토 사이트 순위를 설명하려면) 예를 들어이 쿼리를 고려하십시오.
2 + 4.0; 선택
파서는 처음에 상수를 유형으로 표시합니다정수
and숫자
각각. 없음정수
+
숫자
시스템 카탈로그의 연산자이지만 A가 있습니다.숫자
+
숫자
운영자. 따라서 쿼리는에서 토토 사이트 순위되면 성공합니다.정수
to숫자
사용 가능하고 표시암시 적
- 실제로. 파서는 암시 적 토토 사이트 순위를 적용하고 쿼리가 작성된 것처럼 쿼리를 해결합니다
CAST (2 AS 숫자) + 4.0; 선택
이제 카탈로그는에서 토토 사이트 순위를 제공합니다.숫자
to정수
. 그 토토 사이트 순위가 표시되면암시 적
- 그렇지 않습니다 - 파서는 위의 해석과 주조의 대안 중에서 선택하는 데 직면하게됩니다.숫자
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 변환 토토 사이트 순위를 제공합니다. 자동 토토 사이트 순위 대 문자열 유형은 할당 토토 사이트 순위로 취급되는 반면 문자열 유형의 자동 토토 사이트 순위는 명시 적 전용입니다. 자동 토토 사이트 순위를 대체하기 위해 자신의 토토 사이트 순위를 선언 하여이 동작을 무시할 수 있지만, 일반적으로 유일한 이유는 표준 할당 전용 또는 명시 적 전용 설정보다 변환이 더 쉽게 호출 될 수 있기 때문입니다. 또 다른 가능한 이유는 변환이 유형의 I/O 함수와 다르게 행동하기를 원하기 때문입니다. 그러나 그것은 좋은 생각인지에 대해 두 번 생각해야한다는 것은 충분히 놀라운 일입니다. (소수의 내장 유형은 실제로 SQL 표준의 요구 사항으로 인해 변환에 대한 동작이 다릅니다.)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토토 사이트 순위 만들기
명령은를 준수합니다.SQLSQL이 이진 통합 유형 또는 구현 함수에 대한 추가 인수를 제공하지 않는다는 점을 제외하고는 표준입니다.암시 적
isPostgreSQL확장도.