質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

Q&A

1回答

4996閲覧

配列をテーブル関数で使いたい

ORACLE2020

総合スコア0

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

0グッド

0クリップ

投稿2020/07/28 09:48

前提・実現したいこと

【oracleバージョン】
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0

【やりたいこと】
テーブル型参照した配列を定義して、あるテーブルからデータを格納し、その配列をテーブルと見立ててselectしたいのですがエラーが解決出来なくて困っています。

発生している問題・エラーメッセージ

18/21 PLS-00642: SQL文ではローカル・コレクション型は使用できません
18/30 PL/SQL: ORA-00947: 値の個数が不足しています。

該当のソースコード

PLSQL

ソースコード
CREATE OR REPLACE PACKAGE PG_test
IS
TYPE test_Col IS TABLE OF test_tbl%ROWTYPE;

--* メイン処理
PROCEDURE P01_test;

END PG_test;
/
show err

CREATE OR REPLACE PACKAGE BODY PG_test
IS
PROCEDURE P01_test
IS

--内部変数 wtest test_tbl%ROWTYPE; test_rec test_Col;

BEGIN

SELECT * INTO test_rec FROM test_tbl; SELECT * INTO wtest FROM TABLE(test_rec);

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END P01_test;

END PG_test;
/
show err

【テーブル】
create table test_tbl(
aaa number(10,0),
bbb varchar2(10)
);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問