¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

CREATE CAST

̾��

CREATE CAST -- ���������㥹�Ȥ����

����

CREATE CAST (sourcetype AS targettype)
    WITH FUNCTION funcname (argtypes)
    [ AS ASSIGNMENT | AS IMPLICIT ]

CREATE CAST (sourcetype AS targettype)
    WITHOUT FUNCTION
    [ AS ASSIGNMENT | AS IMPLICIT ]

����

CREATE CAST����Ѥ���ȡ����������㥹�Ȥ�����Ǥ��ޤ��� ���㥹�Ȥˤ�ꡢ2�ĤΥǡ������֤��Ѵ�������ˡ����ꤷ�ޤ��� �ʲ�����򼨤��ޤ���

SELECT CAST(42 AS text);

���ν�����¹Ԥ���ȡ������˻��ꤵ�줿�ؿ������ξ��text(int4)��ƤӽФ����������42��text�ǡ��������Ѵ����ޤ��� (Ŭ�ڤʥ��㥹�Ȥ��������Ƥ��ʤ���硢�Ѵ������ϼ��Ԥ��ޤ���)

2�ĤΥǡ������ϡ��Х��ʥ�ߴ�����������礬����ޤ��� �Ĥޤꡢ"��ͳ��"�ؿ���ƤӽФ����Ȥʤ����ߤ��Υǡ��������Ѵ����뤳�Ȥ��Ǥ��ޤ��� ���ξ�硢�б������ͤϡ�Ʊ������ɽ������Ѥ��Ƥ���ɬ�פ�����ޤ��� �㤨�С��ǡ�����text�����varchar�ϡ��Х��ʥ�ߴ���������ޤ���

�ǥե���ȤǤϡ����㥹�Ȥ�����Ū�ʥ��㥹���׵᤬���ä����Τ߸ƤӽФ���ǽ�Ǥ��� ����Ū�ʥ��㥹�Ȥι�ʸ�Ȥϡ�CAST(x AS typename)���⤷���ϡ�x::typename�Ǥ���

���㥹�Ȥ�AS ASSIGNMENT���ץ������դ���ȡ��оݥǡ������������������ݡ�����Ū�ˤ��Υ��㥹�Ȥ�ƤӽФ��褦������Ǥ��ޤ��� �㤨�С�foo.f1��text������Ǥ���Ȥ��ޤ���

INSERT INTO foo (f1) VALUES (42);

integer������text�����Ѵ����륭�㥹�Ȥ�AS ASSIGNMENT���ץ�����դ����Ƥ���С��嵭��SQLʸ�ϼ¹Բ�ǽ�Ǥ��� ���ץ�����դ��Ƥ��ʤ���С��¹ԤǤ��ޤ��� (����Ū�ˡ����μ�Υ��㥹�Ȥ��������㥹���ȸƤФ�Ƥ��ޤ��� )

���㥹�Ȥ�AS IMPLICIT���ץ������դ���ȡ������Ǥ⡢�⤷���ϼ�����ˤ����ΤǤ⡢���ƤΥ���ƥ����Ȥǰ���Ū�ˤ��Υ��㥹�Ȥ�ƤӽФ��褦������Ǥ��ޤ��� �ʲ�����򻲾Ȥ��Ƥ��������� ||��text���ΰ�����������ޤ��Τǡ�

SELECT 'The time is ' || now();

�Ȥ���SQLʸ�ϡ�timestamp������text�����Ѵ����륭�㥹�Ȥ�AS IMPLICIT���ץ�����դ����Ƥ�����Τ߼¹Բ�ǽ�Ǥ��� ���ץ�����դ��Ƥ��ʤ���С��ʲ��Τ褦������Ū�˥��㥹�Ȥ򵭽Ҥ���ɬ�פ�����ޤ���

SELECT 'The time is ' || CAST(now() AS text);

(����Ū�ˡ����μ�Υ��㥹�Ȥ����ۥ��㥹���ȸƤФ�Ƥ��ޤ��� )

���ۥ��㥹�Ȥϡ�¿�Ѥ��ʤ����������Ǥ��� ����Ū���㥹�Ȥ���Ѥ�������ȡ�PostgreSQL�����ޥ�ɤ�פ�̰�̣�˲�ᤷ�Ƥ��ޤ������ˤʤ�ޤ��� �⤷���ϡ�ʣ���β�᤬��ǽ�ʤ��ᡢ���ޥ�ɤ��������ɤǤ��ʤ��ʤäƤ��ޤ���ǽ���⤢��ޤ��� �и�Ū�ˤϡ�Ʊ������Ū�ʥǡ��������ƥ���Υǡ������֤ǡ�������ݻ������Ѵ��ǤΤߡ����ۥ��㥹�Ȥ�ƤӽФ���ǽ�ˤ���Τ��ɤ���ˡ�Ȼפ��ޤ��� �㤨�С�int2������int4���ؤΥ��㥹�Ȥϡ����ۥ��㥹�Ȥˤ���Τ������Ǥ�����float8������int4���ؤΥ��㥹�Ȥϡ������餯�������㥹�ȤΤߤȤ��٤��Ǥ��礦�� text������int4���ؤ��Ѵ��Τ褦�ʡ����ƥ����ۤ���ǡ������Υ��㥹�Ȥϡ�����Ū�ˤΤ߻��Ѥ���Τ�Ŭ�ڤǤ���

���㥹�Ȥ������ǽ�ˤ���ˤϡ��Ѵ����ޤ����Ѵ���Υǡ��������ͭ���Ƥ���ɬ�פ�����ޤ��� �ޤ����Х��ʥ�ߴ��������륭�㥹�Ȥ��������ˤϡ������ѡ��桼���Ǥ���ɬ�פ�����ޤ� (�Х��ʥ�ߴ��������륭�㥹���Ѵ�����äƻ��Ѥ���ȥ����Ф�����å��夷�Ƥ��ޤ���ǽ�����⤤���Ȥ��顢�������¤��դ����ޤ���)��

�ѥ�᡼��

sourcetype

���㥹�Ȥ����Ѵ����Υǡ�������̾���Ǥ���

targettype

���㥹�Ȥ����Ѵ���Υǡ�������̾���Ǥ���

funcname(argtypes)

���δؿ��ϡ����㥹�Ȥ�¹Ԥ��뤿��˻��Ѥ��ޤ��� �ؿ�̾�ϡ��������޽������뤳�Ȥ��Ǥ��ޤ��� �������޽�������Ƥ��ʤ���硢�ؿ��ϥ������޸����ѥ����鸡������ޤ��� �ؿ��η�̤Υǡ������ϥ��㥹�Ȥ��Ѵ���Υǡ������Ȱ��פ���ɬ�פ�����ޤ��� �����ˤĤ��Ƥϸ���������ޤ���

WITHOUT FUNCTION

�Ѵ����ǡ�����������Ѵ���ǡ������ϡ��Х��ʥ�ߴ��������뤳�Ȥ򼨤��ޤ��� ���äơ����㥹�Ȥ�¹Ԥ���Τ˴ؿ���ɬ�פ���ޤ���

AS ASSIGNMENT

��������ƥ����Ȥǡ�����Ū�˥��㥹�Ȥ�ƤӽФ����Ȥ��Ǥ��뤳�Ȥ򼨤��ޤ���

AS IMPLICIT

Ǥ�դΥ���ƥ����Ȥǡ�����Ū�˥��㥹�Ȥ�ƤӽФ����Ȥ��Ǥ��뤳�Ȥ򼨤��ޤ���

���㥹�Ȥ��������ؿ���1����3�Ĥΰ������뤳�Ȥ��Ǥ��ޤ��� 1���ܤΰ������ϥ��㥹�Ȥ��Ѵ����ǡ�������Ʊ��Ǥʤ���Фʤ�ޤ��� 2���ܤΰ����ϡ��⤷����С�integer���Ǥʤ���Фʤ餺���Ѵ���η��˴�Ϣ�դ����������Ҥ�������ޤ��� �������Ҥ��ʤ�����-1��������ޤ��� 3���ܤΰ����ϡ��⤷����С�boolean���Ǥʤ���Фʤ餺�����㥹�Ȥ�����Ū�ʥ��㥹�ȤǤ����true�򡢤���ʳ��Ǥ����false��������ޤ��� (��̯�Ǥ�����SQL���ͤǤϡ�����Ū���㥹�ȤȰ���Ū���㥹�ȤȤδ֤ǰۤʤ뿶�񤤤��׵᤹���礬����ޤ��� ���ΰ����Ϥ�������������������ʤ���Фʤ�ʤ��ؿ��Ѥ��󶡤�����ΤǤ��� �ȼ��Υǡ������򤳤�ή���˽����褦���߷פ��뤳�Ȥϴ�����ޤ���)

���̡����㥹�Ȥϰۤʤ��Ѵ������Ѵ���Υǡ�����������ʤ���Фʤ�ޤ��� ��������2�İʾ�ΰ������Ĵؿ��ǥ��㥹�Ȥ�����������ϡ��Ѵ������Ѵ���Ȥ�Ʊ��Υǡ���������ĥ��㥹�Ȥ�������뤳�Ȥ��Ǥ��ޤ��� ����ϡ������ƥ५�������ˤ����Ʒ���ͭ��Ĺ�������ؿ���ɽ�����뤿��˻��Ѥ���Ƥޤ��� ��̾���줿�ؿ��ϡ�2���ܤΰ�����Ϳ����줿�������Ҥ��ͤǷ����ͤ������뤿��˻��Ѥ���ޤ��� (ʸˡ�塢������Ȥ߹��ߥǡ������Τߤ��������Ҥ���Ĥ��Ȥ��Ǥ��ޤ��Τǡ����ε�ǽ���Ѵ��褬�桼������Υǡ������ξ��ˤ����Ω���ޤ��� ���������ˤ��뤿��ˤ����ǵ��Ҥ��Ƥ��ޤ���)

�Ѵ������Ѵ���Υǡ��������ۤʤ륭�㥹�Ȥǡ����δؿ���ʣ���ΰ��������硢����ϡ�����ǡ���������¾�Υǡ������ؤ��Ѵ���Ĺ���ζ�����1�Ĥ����ˤޤȤ᤿��ΤǤ��뤳�Ȥ�ɽ���ޤ��� �����������ܤ��ʤ��ȡ��������Ҥ���Ѥ��뷿�ζ����ϡ��ǽ�˥ǡ������֤��Ѵ������˽����Ҥ�Ŭ�ѤȤ���2�Ĥ���ɬ�פȤʤ�ޤ���

����

�桼������Υ��㥹�Ȥ�������ˤϡ�DROP CAST����Ѥ��Ƥ���������

�ǡ����������������ѹ���ǽ�ˤ���ˤϡ��������Υ��㥹�Ȥ�����Ū���������ɬ�פ����뤳�Ȥ����դ��Ƥ���������

PostgreSQL 7.3������ΥС������Ǥϡ�����ǡ�������Ʊ��̾���ǡ����Υǡ��������֤����ۤʤ�ǡ������ΰ�����1�ļ��ؿ��ϡ���ưŪ�˥��㥹�ȴؿ��Ȥ���Ƥ��ޤ����� ���δ����ϡ��������ޤ�Ƴ�����������ƥ५�������ǥХ��ʥ�ߴ��������륭�㥹�Ȥ�ɽ����ǽ�ˤʤä����Ȥˤ�ꡢ�ػߤ���ޤ����� �Ȥ߹��ߥ��㥹�ȴؿ��ϡ��ޤ�����̿̾��§�˽��äƤ��ޤ��� ��������Ʊ�ͤ�pg_cast�����ƥ५�������ǥ��㥹�ȤȤ��Ƽ������ɬ�פ�����ޤ���

ɬ�פǤϤ���ޤ��󤬡����㥹�Ȥ��������ؿ����Ѵ���Υǡ������˰����̿̾����Ȥ��������θŤ������˽���³���뤳�Ȥ�侩���ޤ��� ¿���Υ桼���ϴؿ��ͼ��ε�ˡ���Ĥޤ�typename(x)������Ѥ��ƥǡ������Υ��㥹�Ȥ��Ǥ���Ȥ������Ȥ���Ѥ��Ƥ��ޤ��� ���ε�ˡ�ϥ��㥹�Ȥ��������ؿ���ƤӽФ��Ƥ��뤳�Ȥ�¾�ʤ�ޤ��� �ä˥��㥹�ȤȤ��ư��äƤ���櫓�ǤϤʤ��ΤǤ��� �ȼ����Ѵ��ؿ���̾�������δ����˽��äƤ��ʤ��ȡ�¾�Υ桼���ϤȤޤɤ����Ȥˤʤ�ޤ��� PostgreSQL�ϰۤʤ��������Ʊ��̾���δؿ��򥪡��С������ɤ��뤳�Ȥ��Ǥ��ޤ��Τǡ��͡��ʷ����餢���Ѵ��跿�ؤ�ʣ�����Ѵ��ؿ��������Ѵ���η�̾����Ѥ��ƺ������뤳�Ȥ��񤷤�����ޤ���

����: �������ˤϾ����ʱ�������ޤ��� ���Τʴؿ��ƤӽФ��ΰ�̣���Τ����pg_cast�����Ѥ�����礬���뤳�ȤǤ��� �ؿ��ƤӽФ�name(x)���ºݤδؿ��˰��פ�����name���ǡ�������̾���Ǥ��ꡢpg_cast��x�η����餽�η��ؤΥ��㥹�Ȥ��Х��ʥ�ߴ��Ǥ��뤳�Ȥ򼨤��Ƥ�����硢���θƤӽФ�������Ū���㥹�ȤȤ��ƸƤӽФ���ޤ��� �����㳰�ϡ��Х��ʥ�ߴ����㥹�Ȥ򡢼ºݤδؿ����ʤ��ä��Ȥ��Ƥ⡢�ؿ��Τ褦�ʹ�ʸ�ǸƤӽФ����Ȥ��Ǥ���褦�˺�������ޤ�����

��

�ؿ�int4(text)����Ѥ���text������int4���ؤΥ��㥹�Ȥ�������ޤ���

CREATE CAST (text AS int4) WITH FUNCTION int4(text);

(���Υ��㥹�Ȥϡ������ƥ�ˤ��Ǥ˻����������Ƥ��ޤ���)

�ߴ���

CREATE CAST�ϡ�SQL:1999�ǤϥХ��ʥ�ߴ���������ǡ��������������ؿ��ؤ�¿���ΰ����ˤĤ��Ƥε����Ԥ�ʤ����������SQL:1999�˽�򤷤Ƥ��ޤ��� AS IMPLICIT�⡢PostgreSQL�γ�ĥ�Ǥ���

��Ϣ����

CREATE FUNCTION, CREATE TYPE, DROP CAST