![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
変数が選択リストにありません
下記のコードを実行すると「変数が選択リストにありません」というエラーが出てしまいます。
SELECT文とFETCHのINTOの変数の個数が一致していない場合にこのエラーは出るということらしいのですが、問題ないように思うのです。
下記コードで何が問題になっているのか教えてください。
よろしくお願いします。
set serveroutput on;
declare
-- 各テーブルの全カラムを取得
cursor curcol (p_tblname user_tables.table_name%type) is
select COLUMN_NAME,DATA_TYPE
from user_tab_columns
where table_name = p_tblname
;
v_sql varchar2(1000); -- SQL文
v_col varchar2(1000); -- カラム名
v_val varchar2(1000); -- 取得データ
v_tblname varchar2(20); -- テーブル名
v_RstExec integer;
v_CursorID integer;
begin
v_col := '';
v_tblname := 'sample';
-- 取得テーブルのカラムを取得
for rowcol in curcol(v_tblname) loop
-- 取得カラムをCSV形式に変換
if v_col is null then
v_col := rowcol.COLUMN_NAME;
else
v_col := v_col||'||'',''||'||rowcol.COLUMN_NAME;
end if;
end loop;
dbms_output.put_line(v_col);
-- SQL作成
v_sql := 'select '||v_col||' from '||v_tblname;
v_CursorID := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(v_CursorID, v_sql, DBMS_SQL.NATIVE);
v_RstExec := DBMS_SQL.EXECUTE(v_CursorID);
LOOP
IF DBMS_SQL.FETCH_ROWS(v_CursorID) = 0 THEN
EXIT;
END IF;
DBMS_SQL.COLUMN_VALUE(v_CursorID, 1, v_val);
DBMS_OUTPUT.PUT_LINE(v_val);
END LOOP;
DBMS_SQL.CLOSE_CURSOR(v_CursorID);
end;
/
No.2ベストアンサー
- 回答日時:
>DBMS_SQL.PARSE(v_CursorID, v_sql, DBMS_SQL.NATIVE);
の後に
DBMS_SQL.DEFINE_COLUMN( v_CursorID, 1, v_val,1000) ;
が必要では?
回答ありがとうございます。
DBMS_SQL.DEFINE_COLUMN( v_CursorID, 1, v_val,1000) ;
追加したらエラーが出なくなりました。
ただ、テーブル内の全レコードが表示されるかと思ったのですが1件しか表示されません。
No.4
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
【PL/SQL】FROM区に変数を使う方法
Oracle
-
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
PCC-S-02201エラーの対処を教えてください!
Oracle
-
-
4
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
5
カーソル0件の時にエラーを発生させる
Oracle
-
6
select句副問い合わせ 値の個数が多すぎます
Oracle
-
7
PL/SQL PLS-00103エラーについて
Oracle
-
8
カーソル定義での条件分岐
Oracle
-
9
Pro*Cの構文エラー
その他(プログラミング・Web制作)
-
10
Oracleのビュー作成時に「指定した列名の個数が無効です」エラー
Oracle
-
11
Oracleでの文字列連結サイズの上限
Oracle
-
12
単一グループのグループ関数ではありません。
Oracle
-
13
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
14
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
15
PL/SQLカーソルの2重FORループができません
Oracle
-
16
pro*c で pl/sql に変数を渡すとora-01458発生
Oracle
-
17
テーブルの存在チェックについて
Oracle
-
18
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
19
バインド変数について
Oracle
-
20
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数が選択リストにありません
-
importについて
-
テーブルの存在チェックについて
-
異なるサーバのDBデータ同士を...
-
PostgreSQLのカラムに"user"と...
-
データがある場合のカラムの削除
-
既存DBのテーブル情報をCR...
-
TIMESTAMP型が含まれるテーブル...
-
データベース内のテーブル名の取得
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルの値をテキス...
-
必須入力項目と入力必須項目
-
Accessのフィールド数が255しか...
-
【Access】フォームで自動計算...
-
Accessでコードを入れると名前...
-
エクセルグラフの凡例スペース
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数が選択リストにありません
-
テーブルの存在チェックについて
-
異なるサーバのDBデータ同士を...
-
importについて
-
既存DBのテーブル情報をCR...
-
データがある場合のカラムの削除
-
データベース内のテーブル名の取得
-
Timestampの値を自動的に挿入す...
-
PostgreSQLのカラムに"user"と...
-
どれがPrimary Key、ForeignKey...
-
1ヶ月に土日は何日あるか
-
Oracleのトリガーについて
-
NLS_LENGTH_SEMANTICS変更の影響
-
Object Browser相関タブの見方...
-
NLS_CHARSETの変更について
-
Pro*CでのINSERT文
-
オラクルの環境をコピーして全...
-
OracleとSQLserver間のデータ連...
-
テーブルのCreate文
-
Oracleでテーブル構成を表示す...
おすすめ情報