---
title: "Select AI with RAGとは？SQLで社内文書RAGを作る手順と26aiの対応範囲【2026年11月】"
url: "https://www.issoh.co.jp/tech/details/7983/"
published: 2025-08-01
updated: 2026-11-07
categories: ["LLM・RAG"]
publisher: "株式会社一創"
---

# Select AI with RAGとは？SQLで社内文書RAGを作る手順と26aiの対応範囲【2026年11月】

Select AI with RAGは、Oracle Autonomous AI Databaseの `SELECT AI` 文から社内文書を検索し、LLMに回答させる機能です。文書の取り込み、チャンク分割、埋め込み生成、ベクトル索引の更新までをデータベースのパイプラインが受け持つため、SQLとPL/SQLだけでRAGを組めます。

この記事では、大阪リージョンのOCI Generative AIを使う設定手順を軸に、対応バージョン、取り込み元の選び方、退役した既定の埋め込みモデルからの移行、日本語環境の落とし穴を、2026年11月7日時点のOracle公式ドキュメントに沿って整理します。

## まとめ：Select AI with RAGの要点

- RAGの質問は `SELECT AI narrate` で投げる。AIプロファイルに `vector_index_name` があると、ベクトル検索の結果をプロンプトに足してLLMへ送る
- RAGとベクトル索引が使えるのはAutonomous AI Database 26aiとOracle AI Database 23.26.1。Autonomous AI Database 19cでは使えない
- 索引は `DBMS_CLOUD_AI.CREATE_VECTOR_INDEX` で作る。既定値はチャンク1,024文字・重なり128文字・検索上位5件・更新間隔1,440分
- OCI Generative AIの既定の埋め込みモデル `cohere.embed-english-v3.0` は、オンデマンドの退役日が2026年10月21日。`cohere.embed-v4.0`（既定1,536次元）を明示する
- 次元数は作成後に変えられない。埋め込みモデルを替えるときは新しい索引を作り、プロファイルの参照先を切り替える
- 取り込み元はObject Storage、データベースのディレクトリ、SharePointから選べる
- ファイル名にマルチバイト文字を含む文書は、エラーにならずにベクトル化の対象から外れる

## Select AIとRAGの関係：NL2SQLとの違い

Select AIは、`SELECT AI` に続けて自然言語を書くと、データベースがLLMを呼び出して処理する機能群です。中心は自然言語からSQLを生成するNL2SQLで、ほかにRAG、チャット、要約、翻訳、合成データ生成があり、これらは `DBMS_CLOUD_AI` パッケージで設定します。エージェントの定義には別パッケージの `DBMS_CLOUD_AI_AGENT` を使います。

NL2SQLとRAGの違いは、LLMに渡るデータです。SQL生成ではスキーマ定義や列のコメントといったメタデータだけを送り、表の行は送りません。RAGの `narrate` は、ベクトル検索で取り出した文書の断片をLLMに渡します。

| 項目             | NL2SQL（showsql・runsql） | RAG（narrate＋ベクトル索引） |
| -------------- | ---------------------- | ------------------- |
| 答えの出どころ        | 表のデータ                  | 取り込んだ文書             |
| LLMに送るもの       | スキーマのメタデータ             | 検索で取り出した文書の断片       |
| 出力             | SQL文または実行結果            | 自然文の回答＋出典           |
| プロファイルの鍵       | object\_list           | vector\_index\_name |
| Autonomous 19c | 使える                    | 使えない                |

売上表を集計したいならNL2SQL、規程集やマニュアルの内容を答えさせたいならRAGです。NL2SQLの仕組みと精度の限界は[Text-to-SQLとは？テキストからSQLを生成するLLMの仕組みと精度・安全な実装](/tech/details/7962/)で扱っています。

### RAG（検索拡張生成）の定義

RAG（Retrieval-Augmented Generation）は、質問に関係する文書を検索で取り出し、その内容をプロンプトに足してLLMに回答させる手法です。LLMが学習していない社内情報に答えられるようになり、根拠のない回答を減らせます。ファインチューニングとの違いや企業での導入例は[RAGとは？仕組みとLLM・ファインチューニングとの違い・企業での導入例を解説](/column/details/12919/)にまとめています。

## Select AI with RAGの処理の流れ

処理は、索引を作る段階と質問に答える段階に分かれます。前者は索引の作成時に起動するパイプライン（`<索引名>$VECPIPELINE`）が非同期で回し、後者は `narrate` を実行するたびに走ります。

1. 取り込み元からPDF・DOC・JSON・XML・HTMLなどを読み、Oracle Textでプレーンテキストにする（約150形式に対応）
2. テキストをチャンクに分け、索引の `profile_name` で指定したプロファイルの埋め込みモデルでベクトルにして、データベース内の表に保存する
3. 質問文を同じ埋め込みモデルでベクトルにし、類似度の高い上位5件（既定）のチャンクを取り出す
4. チャンクと質問をLLMへ送り、回答を出典の一覧とともに返す

文書が追加されると `refresh_rate` の間隔で索引が更新されます。検索工程の設計論点は[リトリーバルとは？RAGの検索工程の仕組みと実装・精度改善の判断基準【2026年版】](/tech/details/16055/)で詳しく扱っています。

## 対応バージョンと前提条件：Autonomousは26aiのみRAG対応

Oracleの[Select AI and Select AI Agent Capability Matrix](https://docs.oracle.com/en/database/oracle/oracle-database/26/saicm/index.html)では、RAGの対応が次のように分かれています。NL2SQLはすべての版で使えますが、RAGと `CREATE_VECTOR_INDEX` などのベクトル索引のプロシージャは26ai系に限られます。

| データベース                      | NL2SQL | RAG |
| --------------------------- | ------ | --- |
| Autonomous AI Database 26ai | ○      | ○   |
| Autonomous AI Database 19c  | ○      | ×   |
| Oracle AI Database 23.26.1  | ○      | ○   |
| Oracle AI Database 23.7以降   | ○      | ×   |
| Oracle AI Database 19.30    | ○      | ×   |

製品名は2025年10月にAutonomous DatabaseからAutonomous AI Databaseへ変わっています。旧名の資料との対応は[Autonomous Transaction Processing（ATP）とADWの違い｜Lakehouse改称後の料金と選び方](/tech/details/4203/)、26aiの版番号と提供状況は[Oracle 23aiは26aiへ：オンプレ版の提供状況・23cとの違い・Free版の制限](/tech/details/8495/)を参照してください。

設定に入る前に、次がそろっているか確認します。

- 作業ユーザーへの `DBMS_CLOUD_AI` と `DBMS_CLOUD_PIPELINE` の実行権限
- 作業ユーザーへの表領域クォータ（ベクトルを保存する表を作るため）
- OCI Generative AIを呼べるOCIユーザーのAPI署名鍵、またはOpenAIなど外部プロバイダのAPIキー
- 文書を置いたObject Storageバケットと、その読み取り用の資格情報

## OCI Generative AIによるAIプロファイルとベクトル索引の作成手順

公式ドキュメントの[RAGの設定例](https://docs.oracle.com/en/database/oracle/oracle-database/26/selai/use-retrieval-augmented-generation-and-vectors.html)はOpenAIを使っていますが、ここではOCI Generative AIの大阪リージョンを使う構成に置き換えます。OCI Generative AIはネットワークACLの追加が要らず、生成と埋め込みの両方を国内リージョンで処理できるためです。`ADB_USER`、OCID、バケットのURLは自分の環境の値に置き換えてください。

### 権限と資格情報の準備

```
-- ADMIN で実行：権限と表領域クォータ
GRANT EXECUTE ON DBMS_CLOUD_AI TO ADB_USER;
GRANT EXECUTE ON DBMS_CLOUD_PIPELINE TO ADB_USER;
ALTER USER ADB_USER QUOTA 1T ON DATA;

-- ここから ADB_USER で実行
-- OCI Generative AI 用（API 署名鍵）
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'GENAI_CRED',
    user_ocid       => 'ocid1.user.oc1..aaaa...',
    tenancy_ocid    => 'ocid1.tenancy.oc1..aaaa...',
    private_key     => '<your_private_key>',
    fingerprint     => '<your_fingerprint>'
  );
END;
/

-- Object Storage の読み取り用
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OBJ_CRED',
    username        => '<your_username>',
    password        => '<auth_token>'
  );
END;
/
```

Autonomous AI Databaseの表領域は自動管理で、名前は `DATA` で始まります。`1T` は公式例の値なので、文書量に合わせて決めます。付与済みのクォータは `DBA_TS_QUOTAS` で確認できます。

### AIプロファイルとベクトル索引の作成

AIプロファイルの `vector_index_name` に索引名を書くと、そのプロファイルでの `narrate` がRAGとして動きます。索引側の `profile_name` は、文書と質問の両方を埋め込むときに使うプロファイルです。`region` を書かないと、OCI Generative AIの呼び出し先は既定の `us-chicago-1` になります。

```
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'GENAI_RAG',
    attributes   => '{"provider": "oci",
                      "credential_name": "GENAI_CRED",
                      "region": "ap-osaka-1",
                      "model": "cohere.command-a-03-2025",
                      "embedding_model": "cohere.embed-v4.0",
                      "vector_index_name": "MANUAL_IDX",
                      "temperature": 0.2,
                      "max_tokens": 4000}'
  );
END;
/

EXEC DBMS_CLOUD_AI.SET_PROFILE('GENAI_RAG');

BEGIN
  DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
    index_name          => 'MANUAL_IDX',
    wait_for_completion => TRUE,
    status              => 'Enabled',
    attributes          => '{"vector_db_provider": "oracle",
                             "location": "https://objectstorage.ap-osaka-1.oraclecloud.com/n/my_namespace/b/my_bucket/o/manuals/",
                             "object_storage_credential_name": "OBJ_CRED",
                             "profile_name": "GENAI_RAG",
                             "vector_dimension": 1536,
                             "vector_distance_metric": "cosine",
                             "chunk_size": 1024,
                             "chunk_overlap": 128}'
  );
END;
/
```

[OCI Generative AIのリージョン別モデル一覧](https://docs.oracle.com/en-us/iaas/Content/generative-ai/model-endpoint-regions.htm)では、日本国内でモデルをローカル処理するリージョンとして大阪（Japan Central）が掲載されています。東京もルーティングプロファイルによる他リージョンの生成モデルへのアクセスに対応しますが、Embedding APIには対応していません。大阪ではCohere Embed 4とCohere Command Aをオンデマンドで呼べます。`vector_dimension` の1,536は、[Cohere Embed 4](https://docs.oracle.com/en-us/iaas/Content/generative-ai/cohere-embed-4.htm)の既定の出力次元です。

`wait_for_completion` の既定は `FALSE` で、プロシージャは取り込みを予約した時点で戻ります。索引が完成する前に `narrate` を実行すると、全文書がそろっていないため回答が不完全になりうる、と公式ドキュメントは注意しています。検証では `TRUE` にして完了を待ちます。文書が多いと戻るまで長くかかるため、本番の初回投入は `FALSE` のまま、パイプラインの状態を見て進めるほうが扱いやすくなります。

### SELECT AI narrateによる質問と出典の確認

```
SELECT AI narrate 経費精算の締め日はいつですか;

-- LLM に送るプロンプトを、実行せずに確認する
SELECT AI showprompt 経費精算の締め日はいつですか;

-- 索引の定義と取り込みパイプラインの状態
SELECT * FROM USER_CLOUD_VECTOR_INDEXES;

SELECT pipeline_name, status, error_message
  FROM USER_CLOUD_PIPELINE_HISTORY
 WHERE pipeline_name = 'MANUAL_IDX$VECPIPELINE';
```

回答の末尾には `Sources:` としてファイル名とURLが並びます。期待した文書が出典に出ないときは、`showprompt` でどのチャンクがプロンプトに入ったかを見ます。チャンクが入っていなければ検索側、入っているのに回答が外れていれば生成側の問題です。

`SELECT AI` 構文はDatabase ActionsとAPEX Serviceでは使えません。これらの画面からは `DBMS_CLOUD_AI.GENERATE` 関数に `profile_name` と `action` を渡して呼び出します。

### OpenAIなど外部プロバイダを使う場合の差分

OpenAIを使う場合は、ADMINで `DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE` を実行し、`api.openai.com` への接続を作業ユーザーに許可します。資格情報は `username` に任意の名前、`password` にAPIキーを入れて作ります。OpenAIの既定の埋め込みモデル `text-embedding-ada-002` は1,536次元なので、`vector_dimension` の値は同じです。公式のWhat’s Newで2026年10月の項に載ったGemini Enterprise Agent Platform（`"provider": "geminienterprise"`）は、Google Cloudのプロジェクトと `region` の指定が必須で、OAuth 2.0の資格情報と、リージョンのエンドポイントおよび `oauth2.googleapis.com` へのACLが要ります。

## 文書の取り込み元：Object Storage・ディレクトリ・SharePoint

索引の `location` には、3種類の取り込み元を指定できます。どれを使っても、索引を作った後の質問方法は変わりません。

| 取り込み元          | locationの書き方                          | 向く場面             |
| -------------- | ------------------------------------- | ---------------- |
| Object Storage | バケットまたはフォルダのURI                       | 文書をクラウドに集約済み     |
| ディレクトリ         | MY\_DIR:\*.pdf                        | DB内で生成・配置したファイル  |
| SharePoint     | SharePoint://tenant\_id=…/site\_id=…/ | 規程をSharePointで管理 |

Object StorageのURIでは、`*`（任意の文字列）と `?`（任意の1文字）のワイルドカードでフォルダやファイル名を絞り込めます。ディレクトリの場合はファイル名だけにワイルドカードを使え、ディレクトリ名は既定で大文字小文字を区別しません。区別したいときは `"My_Dir":*` のように二重引用符で囲みます。

[SharePointからの取り込み](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/sharepoint-support.html)は、Autonomous AI Database ServerlessのSharePoint対応機能で、現在は `CREATE_VECTOR_INDEX` も対応操作に含まれています。SharePointのユーザー、またはSharePointへのアクセス権を持つAzureアプリのクライアントIDとシークレットで資格情報を作り、`object_storage_credential_name` に指定します。`location` に書くURIは、`DBMS_CLOUD.INIT_SHAREPOINT_URI` にテナントID・サイトID・リストIDなどを渡すと生成できます。Azureアプリに付ける権限の考え方は[SharePoint APIとは？REST APIとGraphの使い分け・Sites.Selected権限とリスト操作の実装例](/tech/details/19261/)が参考になります。

出典に表示するURLも差し替えられます。AIプロファイルで `enable_custom_source_uri` を `true` にすると、Select AIはObject Storageのファイルに付けたメタデータ `opc-meta-customized_url_source` を読み、そのURLを `Sources:` に出します。社員がバケットを開く権限を持たない場合でも、出典から社内ポータルの原本へ飛べるようになります。

## ベクトル索引の属性と既定値

`CREATE_VECTOR_INDEX` の `attributes` に書ける主な属性です（[DBMS\_CLOUD\_AIパッケージのリファレンス](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/dbms-cloud-ai-package.html)より）。必須は `location`・`object_storage_credential_name`・`profile_name`・`vector_db_provider` の4つです。

| 属性                       | 既定値      | 作成後の変更 |
| ------------------------ | -------- | ------ |
| chunk\_size              | 1024（文字） | 不可     |
| chunk\_overlap           | 128（文字）  | 不可     |
| match\_limit             | 5        | 可      |
| similarity\_threshold    | 0        | 可      |
| refresh\_rate            | 1440（分）  | 可      |
| vector\_distance\_metric | COSINE   | 不可     |
| vector\_dimension        | なし       | 不可     |
| enable\_sources          | true     | 可      |
| location                 | なし（必須）   | 不可     |

変えられる属性は `DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX` で書き換えます。`chunk_size` や距離関数を変えたいときは索引を作り直すしかないため、チャンクの大きさは作成前に文書の構造を見て決めます。日本語文書でのチャンクの大きさの考え方は[チャンクとトークンの違いとは？チャンク分割の手法とRAGのサイズ設計を日本語で実測【2026年版】](/tech/details/8016/)で実測しています。

運用中の操作は3つです。`DISABLE_VECTOR_INDEX` は索引を止め、プロファイルからの検索と新しい文書の取り込みを両方止めます。`ENABLE_VECTOR_INDEX` で再開します。`DROP_VECTOR_INDEX` は既定でベクトルを保存した表ごと消し、`include_data => FALSE` を付けると表を残して索引の定義だけを消します。

## 埋め込みモデルの選び方と切り替え手順

Select AIが対応するAIプロバイダは、OCI Generative AI、OpenAI、Azure OpenAI、Cohere、Google、Gemini Enterprise Agent Platform、Anthropic、Hugging Face、AWS、OpenAI互換プロバイダなどです。RAGでは生成用のLLMに加えて埋め込みモデルが要るので、プロバイダごとの既定値を先に確認します。

### プロバイダ別の既定の埋め込みモデル

| プロバイダ                            | embedding\_modelの既定値      |
| -------------------------------- | ------------------------- |
| OCI Generative AI                | cohere.embed-english-v3.0 |
| OpenAI・Azure OpenAI              | text-embedding-ada-002    |
| Cohere                           | embed-english-v2.0        |
| Google                           | text-embedding-004        |
| Gemini Enterprise Agent Platform | gemini-embedding-001      |
| Anthropic・Hugging Face           | 指定不可                      |

OCI Generative AIとCohereの既定値は、モデル名のとおり英語向けです。日本語の文書を扱うなら既定値に任せず、`embedding_model` を明示します。AnthropicとHugging Faceは `embedding_model` を持たないため、Claudeなどで回答を生成したい場合は、埋め込みを別のプロバイダかONNXモデルで用意する必要があります。Cohere Embed 4の仕様は[Cohere Embed 4（embed-v4.0）の仕様と使い方｜Embed 5との違い・Bedrock東京での実装](/tech/details/6744/)にまとめています。

### 既定のcohere.embed-english-v3.0で作った索引の移行

OCI Generative AIの[オンデマンドモードの退役日一覧](https://docs.oracle.com/en-us/iaas/Content/generative-ai/deprecating-on-demand.htm)では、Cohere Embed English 3やEmbed Multilingual 3などEmbed 3系のモデルの退役日が2026年10月21日、後継の候補がCohere Embed 4とされています（2026年11月7日時点の表示）。`embedding_model` を書かずにOCI Generative AIで索引を作った場合、その索引は、オンデマンドの退役日が2026年10月21日に設定されたモデルでベクトル化されています。

移行元のCohere Embed English 3の出力は1,024次元、Embed 4の既定は1,536次元です。`vector_dimension` は作成後に変えられないため、既存の索引の属性を書き換えて移行することはできません。OracleもEmbed 3から4への移行では、1,536次元の新しい索引を作り、全文書を処理し直してから切り替える手順を勧めています。

```
-- 1. Embed 4 を使う埋め込み用プロファイル
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'EMB4',
    attributes   => '{"provider": "oci",
                      "credential_name": "GENAI_CRED",
                      "region": "ap-osaka-1",
                      "embedding_model": "cohere.embed-v4.0"}'
  );
END;
/

-- 2. 同じ文書から 1,536 次元の索引を作り、完了まで待つ
BEGIN
  DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
    index_name          => 'MANUAL_IDX_V4',
    wait_for_completion => TRUE,
    status              => 'Enabled',
    attributes          => '{"vector_db_provider": "oracle",
                             "location": "https://objectstorage.ap-osaka-1.oraclecloud.com/n/my_namespace/b/my_bucket/o/manuals/",
                             "object_storage_credential_name": "OBJ_CRED",
                             "profile_name": "EMB4",
                             "vector_dimension": 1536}'
  );
END;
/

-- 3. 回答用プロファイルの参照先を新しい索引へ切り替える
BEGIN
  DBMS_CLOUD_AI.SET_ATTRIBUTE(
    profile_name    => 'GENAI_RAG',
    attribute_name  => 'vector_index_name',
    attribute_value => 'MANUAL_IDX_V4'
  );
END;
/

-- 4. 評価用の質問で結果を確かめてから旧索引を消す
BEGIN
  DBMS_CLOUD_AI.DROP_VECTOR_INDEX(index_name => 'MANUAL_IDX');
END;
/
```

質問文のベクトル化には、索引の `profile_name` に指定したプロファイルが使われます。そのため、索引ごとに埋め込み用プロファイルを分けておくと、回答用プロファイルを書き換えるだけで新旧の索引を行き来できます。旧索引は、評価用の質問で新しい索引の検索結果を確かめるまで残しておきます。

### ONNXモデルをデータベースに取り込んで埋め込む方法

26aiでは、ONNX形式の事前学習済みモデルをデータベースに取り込み、外部APIを呼ばずに埋め込みを作れます。文書と質問のベクトル化で外部へデータを送らずに済みます。以下は公式例を自分のバケット向けに置き換えたものです。実行前に、公式例が参照するOracle Database向けの事前構築済みONNXモデルを入手し、コードで指定するファイル名で自分のバケットに配置してください。ディレクトリはADMINで作成して作業ユーザーに読み書きを許可し、作業ユーザーには `CREATE MINING MODEL` 権限を付けておきます。

```
-- ADMIN で実行
CREATE OR REPLACE DIRECTORY ONNX_DIR AS 'onnx_model';
GRANT READ, WRITE ON DIRECTORY ONNX_DIR TO ADB_USER;
GRANT CREATE MINING MODEL TO ADB_USER;

-- ADB_USER で実行：バケットから取得してモデルとして登録
BEGIN
  DBMS_CLOUD.GET_OBJECT(
    credential_name => 'OBJ_CRED',
    object_uri      => 'https://objectstorage.ap-osaka-1.oraclecloud.com/n/my_namespace/b/my_bucket/o/all_MiniLM_L12_v2.onnx',
    directory_name  => 'ONNX_DIR');
  DBMS_VECTOR.LOAD_ONNX_MODEL(
    directory  => 'ONNX_DIR',
    file_name  => 'all_MiniLM_L12_v2.onnx',
    model_name => 'MY_ONNX_MODEL');
END;
/

SELECT model_name, algorithm, mining_function
  FROM user_mining_models
 WHERE model_name = 'MY_ONNX_MODEL';

-- 埋め込みだけを担うプロファイル
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'EMB_ONNX',
    attributes   => '{"provider": "database",
                      "embedding_model": "MY_ONNX_MODEL"}'
  );
END;
/
```

生成用のプロファイルに組み込む場合は、`"embedding_model": "database: MY_ONNX_MODEL"` と書きます。別のスキーマが持つモデルは `database: 所有者.モデル名` で指定し、`SELECT ANY MINING MODEL` などの権限が要ります。公式例の `all_MiniLM_L12_v2` はモデルカードの対応言語が英語（en）なので、日本語の文書に使う前に、取り込むモデルが日本語を学習しているかをモデルカードで確かめます。ただし回答生成に外部のLLMを使えば、取り出した文書の断片はそのLLMへ送られます。ONNXそのものの仕組みは[ONNXとは？読み方・.onnxファイルの中身・変換とONNX Runtimeでの推論【onnx 1.23／ORT 1.31対応】](/tech/details/7528/)、モデル選びの観点は[埋め込みモデルとは？仕組みと日本語モデルの選び方・RAG実装での判断基準【2026年版】](/tech/details/16044/)で整理しています。

## 運用で詰まる点：日本語ファイル名・送信先・回答品質

### マルチバイト文字を含むファイル名のスキップ

[Select AI RAGの公式ドキュメント](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-retrieval-augmented-generation.html)には、入力文書のファイル名にマルチバイト文字は使えず、そのファイルはベクトル化でスキップされると明記されています。「就業規則\_2026.pdf」のような日本語ファイル名はエラーにならず、黙って検索対象から外れます。索引は完成しても肝心の規程が出典に出てこない、という形で表面化するため、アップロード前にファイル名を英数字へ変え、元の名前との対応表を別に持ちます。SharePointから取り込む場合も、日本語名のファイルが混ざっていないかを先に確かめます。

### LLMへの送信先とデータ送信の止め方

OCI Generative AIのプロファイルで `region` を省くと、文書の断片も質問も `us-chicago-1` へ送られます。国内で処理する要件があるなら、`ap-osaka-1` を明示したうえで、本例のCohere Command AとEmbed 4のように大阪で処理されるモデルを選びます。OCI経由のGoogle Geminiなどは外部プロバイダへ転送されるため、大阪の指定だけでは国内処理を保証できません。

管理者が `DBMS_CLOUD_AI.DISABLE_DATA_ACCESS` を実行すると、そのデータベースの全ユーザーについて、narrate・RAG・合成データ生成でのデータ送信が止まります。NL2SQLの showsql と runsql はメタデータしか送らないため影響を受けません。部署ごとに許可を分ける機能ではなく、データベース単位のスイッチです。

### 検索と生成を分けた回答品質の評価

索引の属性に回答品質を測る項目はないため、精度の確認は利用者側で設計します。検索は、`showprompt` でプロンプトに入ったチャンクを記録し、質問ごとに関連するチャンクの割合を人が判定して測ります。生成は、回答の各主張がそのチャンクに裏付けられているかを1文ずつ確認します。出典のファイル名が正しくても、回答がその内容と食い違うことはあるためです。`match_limit` と `similarity_threshold` は作成後に変えられるので、評価用の質問集を作って値を振ります。評価指標の選び方は[RAG評価とは？検索と生成を分けて測る指標・Ragasでの実装・運用への組み込み【2026年版】](/tech/details/15935/)を参照してください。

## Select AI with RAGを選ぶ場面・選ばない場面

Select AI with RAGが向くのは、すでにAutonomous AI Database 26aiを使っていて、文書をObject StorageかSharePointに置いている組織です。アプリはSQLを1本発行するだけで回答と出典を受け取れるため、PL/SQLやAPEXでアプリを作っているチームなら外部のRAGフレームワークを足さずに済みます。Java SDKのSelect AI for Java（What’s Newの2026年9月の項）を使えば、RAGをJavaのAPIからも呼べます。社内文書を答えるチャットボットまで一気通貫で作るなら、[AIチャットボット開発](/service/ai/chatbot/)の支援も用意しています。

次の条件に当てはまるなら、選ばないほうがよいと判断します。

- Autonomous AI Database 19cから移行する予定がない（RAGが使えない）
- 文書ごと・部署ごとに検索できる範囲を分けたいが、VPDなどのアクセス制御を追加で設計・運用できない
- チャンクを見出し単位など独自のロジックで切りたい（索引の設定は文字数と重なりまで）
- キーワード検索との併用やリランクで検索精度を詰めたい（索引の属性にその項目がない）

Deep Data Security（利用者ごとに行と列を絞る26aiの機能）も、公式のSelect AIとの組み合わせ例はNL2SQLのエージェントで、RAGの索引への適用例はありません。キーワード検索とベクトル検索を組み合わせる方式は[ハイブリッド検索とは？RAGでBM25とベクトル検索を統合する仕組み・RRF・製品別の実装【2026年版】](/tech/details/8014/)、他クラウドで同じことをする手順は[Amazon BedrockでRAGを実装する手順｜Managed Knowledge Baseのboto3実装と東京リージョンの制約【2026年11月】](/tech/details/4204/)で比べられます。

## よくある質問

### RAGとは何ですか？Select AIとはどう違いますか？

RAGは、文書を検索して取り出した内容をLLMに渡して回答させる手法の名前です。Select AIはOracleの製品機能で、その中にRAGを実行する仕組み（narrateとベクトル索引）が含まれています。

### Select AI with RAGはAutonomous AI Database 19cで使えますか？

使えません。OracleのCapability Matrixでは、RAGとベクトル索引のプロシージャは19cで「N」です。19cで使えるのはNL2SQL・要約・翻訳・合成データ生成・AIエージェントなどです。

### 日本語の文書を検索できますか？

できます。ただし、ファイル名にマルチバイト文字を含む文書はスキップされます。また、OCI Generative AIとCohereの既定の埋め込みモデルは英語向けなので、`cohere.embed-v4.0` など日本語を扱えるモデルを `embedding_model` に明示します。

### SharePointの文書を直接取り込めますか？

Autonomous AI Database Serverlessでは取り込めます。SharePointのクライアントIDとシークレットで資格情報を作り、`DBMS_CLOUD.INIT_SHAREPOINT_URI` で生成したURIを索引の `location` に指定します。

### Database ActionsやAPEXからSELECT AIは使えますか？

`SELECT AI` 構文は使えません。`DBMS_CLOUD_AI.GENERATE` 関数に `profile_name` と `action` を渡して呼び出します。

## 関連記事

- [RAGとは？仕組みとLLM・ファインチューニングとの違い・企業での導入例を解説](/column/details/12919/)
- [Cohere Embed 4（embed-v4.0）の仕様と使い方｜Embed 5との違い・Bedrock東京での実装](/tech/details/6744/)
- [埋め込みモデルとは？仕組みと日本語モデルの選び方・RAG実装での判断基準【2026年版】](/tech/details/16044/)
- [リトリーバルとは？RAGの検索工程の仕組みと実装・精度改善の判断基準【2026年版】](/tech/details/16055/)
- [RAG評価とは？検索と生成を分けて測る指標・Ragasでの実装・運用への組み込み【2026年版】](/tech/details/15935/)

---

出典: [Select AI with RAGとは？SQLで社内文書RAGを作る手順と26aiの対応範囲【2026年11月】](<https://www.issoh.co.jp/tech/details/7983/>)（株式会社一創）
