DOMAIN_NAME
目的
DOMAIN_NAME
は、expr
に関連付けられたドメインの完全修飾名を戻します。exprがドメインに関連付けられている場合、NULL
が戻されます。
複数列ドメインに対してDOMAIN_NAME
をコールする場合、expr
のすべての値が同じドメインのものである必要があります。expr
引数の数がドメイン列の数と異なる場合、またはドメイン内の順序が異なる場合、NULL
を戻します。
関連項目:
例
次の例では、スキーマHR
にドメインDAY_OF_WEEK
を作成し、それを列HR.CALENDAR_DATES.DAY_OF_WEEK_ABBR
に関連付けます。この列をDOMAIN_NAME
に渡すと、ドメインの完全修飾名が戻されます。
問合せは、文字列"MON
"をDAY_OF_WEEK
にキャストしてドメイン名を取得します。
DOMAIN_NAME
へのその他のすべてのコールは、NULL
を戻します。
CREATE DOMAIN hr.day_of_week AS CHAR(3 CHAR);
CREATE TABLE hr.calendar_dates ( calendar_date DATE, day_of_week_abbr hr.day_of_week );
INSERT INTO hr.calendar_dates VALUES(DATE'2023-05-01', 'MON');
SELECT day_of_week_abbr, DOMAIN_NAME(day_of_week_abbr) domain_column, DOMAIN_NAME(calendar_date) nondomain_column, DOMAIN_NAME(CAST('MON' AS hr.day_of_week)) domain_value, DOMAIN_NAME('MON') nondomain_value FROM hr.calendar_dates; DAY_OF_WEEK_ABBR DOMAIN_COLUMN NONDOMAIN_COLUMN DOMAIN_VALUE NONDOMAIN_VALUE ---------------- -------------- ---------------- -------------- --------------- MON HR.DAY_OF_WEEK <null> HR.DAY_OF_WEEK <null>
次の例では、スキーマCO
に複数列ドメインCURRENCY
を作成します。CO.ORDER_ITEMS
の列AMOUNT
およびCURRENCY_CODE
がこのドメインに関連付けられています。
問合せでは、DOMAIN_NAME
の引数は、domain_cols式のドメイン定義にのみ一致します。これにより、ドメインの完全修飾名が戻されます。DOMAIN_NAME
に対する他のすべてのコールの引数とドメイン列が一致しないため、NULL
が戻されます:
CREATE DOMAIN co.currency AS ( amount AS NUMBER(10, 2) currency_code AS CHAR(3 CHAR) );
CREATE TABLE co.order_items ( order_id INTEGER, product_id INTEGER, amount NUMBER(10, 2), currency_code CHAR(3 CHAR), DOMAIN co.currency(amount, currency_code) );
INSERT INTO co.order_items VALUES (1, 1, 9.99, 'USD');
SELECT order_id, product_id, DOMAIN_NAME(amount, currency_code) domain_cols, DOMAIN_NAME(currency_code, amount) domain_cols_wrong_order, DOMAIN_NAME(order_id, product_id) nondomain_cols, DOMAIN_NAME(amount) domain_cols_subset FROM co.order_items ORDER BY domain_cols; ORDER_ID PRODUCT_ID DOMAIN_COLS DOMAIN_COLS_WRONG_ORDER NONDOMAIN_COLS DOMAIN_COLS_SUBSET ---------- ---------- --------------- ------------------------- --------------- -------------------- 1 1 CO.CURRENCY <null> <null> <null>