258 UTL_COLL
258.1 UTL_COLLサブプログラムの要約
UTL_COLLパッケージには、1つのプログラム、IS_LOCATORファンクションがあります。
表258-1 UTL_COLLパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
コレクション項目が実際にロケータかどうかを判別します。 |
258.1.1 IS_LOCATORファンクション
このファンクションは、コレクション項目が実際にロケータかどうかを判別します。
構文
UTL_COLL.IS_LOCATOR ( coln IN STANDARD) RETURNS BOOLEAN;
プラグマ
WNDS、WNPSおよびRNPSの各プラグマの断言。
パラメータ
表258-2IS_LOCATORファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ネストした表またはVARRAY項目 |
戻り値
表258-3 IS_LOCATORファンクションの戻り値
| 戻り値 | 説明 |
|---|---|
|
|
コレクション項目はロケータです。 |
|
|
コレクション項目はロケータではありません。 |
例
CREATE OR REPLACE TYPE list_t as TABLE OF VARCHAR2(20);
/
CREATE OR REPLACE TYPE phone_book_t AS OBJECT (
pno number,
ph list_t );
/
CREATE TABLE phone_book OF phone_book_t
NESTED TABLE ph STORE AS nt_ph;
CREATE TABLE phone_book1 OF phone_book_t
NESTED TABLE ph STORE AS nt_ph_1 RETURN LOCATOR;
INSERT INTO phone_book VALUES(1, list_t('650-633-5707','650-323-0953'));
INSERT INTO phone_book1 VALUES(1, list_t('415-555-1212'));
CREATE OR REPLACE PROCEDURE chk_coll IS
plist list_t;
plist1 list_t;
BEGIN
SELECT ph INTO plist FROM phone_book WHERE pno=1;
SELECT ph INTO plist1 FROM phone_book1 WHERE pno=1;
IF (UTL_COLL.IS_LOCATOR(plist)) THEN
DBMS_OUTPUT.PUT_LINE('plist is a locator');
ELSE
DBMS_OUTPUT.PUT_LINE('plist is not a locator');
END IF;
IF (UTL_COLL.IS_LOCATOR(plist1)) THEN
DBMS_OUTPUT.PUT_LINE('plist1 is a locator');
ELSE
DBMS_OUTPUT.PUT_LINE('plist1 is not a locator');
END IF;
END chk_coll;
SET SERVEROUTPUT ON
EXECUTE chk_coll;