ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

203 UTL_COLL

UTL_COLLパッケージによって、問合せや更新を行うためのコレクション・ロケータをPL/SQLプログラムで使用できます。

この章では、次の項目について説明します。


UTL_COLLサブプログラムの要約

表203-1 UTL_COLLパッケージのサブプログラム

サブプログラム 説明

IS_LOCATORファンクション


コレクション項目が実際にロケータかどうかを判別します。



IS_LOCATORファンクション

このファンクションは、コレクション項目が実際にロケータかどうかを判別します。

構文

UTL_COLL.IS_LOCATOR (
   coln IN STANDARD)
  RETURNS BOOLEAN;

プラグマ

WNDSWNPSおよびRNPSの各プラグマの断言。

パラメータ

表203-2 IS_LOCATORファンクションのパラメータ

パラメータ 説明

coln

ネストした表またはVARRAY項目


戻り値

表203-3 IS_LOCATORファンクションの戻り値

戻り値 説明

1

コレクション項目はロケータです。

0

コレクション項目はロケータではありません。


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;