- ベストアンサー
OPEN文
PL/SQLで質問なんですが OPEN カーソル名 FOR SELECT文 と OPEN カーソル名 の違いがよくわからないので、教えてください
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 【PL/SQL】SQL文が長すぎてSELECTできない
oracle9iのpl/sqlでSELECT文を発行し 取得したカーソルを返す処理をしています。 where句が動的になる為 実行するSQL文が長くなり ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます。が発生しました のエラーが発生します。 そこで、SQL文の部分をCLOB型にしたり SQL文を「||」でつなげたり してみましたが、どちらもエラーになりました。 長すぎるSQL文を実行するには どうしたらよいでしょうか? 以下ソースです。(左側の数字は行数です) ----------------------------------- 1 PROCEDURE テスト(O_カーソル IN OUT 情報カーソル) IS 2 TYPE curType IS REF CURSOR; 3 tmpCur curType; 4 sqlStr VARCHAR2(32767); 5 6 7 BEGIN 8 9 sqlStr := 'SELECT ' 10 sqlStr := sqlStr || 'A,B ' 11 sqlStr := sqlStr || 'FROM' <<省略>> 12 OPEN tmpCur FOR sqlStr ←エラー発生 13 O_カーソル := tmpCur; --取得したカーソルを返す 14 END テスト; ----------------------------------- (1)SQL文をCLOB型にしてみる:コンパイルエラー 4 sqlStr CLOB (2)SQL文を「||」でつなげてみる:文字列バッファが小さすぎますでエラー Dim sqlStr1 VARCHAR2(32767); Dim sqlStr2 VARCHAR2(32767); Dim sqlStr3 VARCHAR2(32767); <<省略>> 12 OPEN tmpCur FOR (sqlStr1 || sqlStr2 || sqlStr3 <<省略>> )
- ベストアンサー
- Oracle
- SELECT文のソート条件
PL/SQLのカーソル定義にて困っています。 SELECT文のORDER BYでソートをかけますが、 例として、引数を2つ与えとします。 2つの値が同値であった場合、次にソートの条件となるのは何なのでしょうか? GROUP BY,WHERE句等はありません。 初歩的な質問過ぎて逆に中々見つけられませんでした。 どなたかご存知の方、教えて頂けますでしょうか。 よろしくお願いします。
- ベストアンサー
- Oracle
- カーソルについて
カーソルってオープン時に該当データの全レコードセットを取得するんでしょうか?。 PL/SQLでVIEWのカーソルをオープンし、ループ処理を行っているんですが、処理速度からして1フェッチごとに毎回SELECT文を発行しているように見受けられます・・・。 ソースはこんな感じです↓。 declare cursor cur_tb_1 is select * from ビュー; begin for rec_tb_1 in cur_tb_1 loop ...処理いろいろ end loop; end; また、このようなケースの場合、VIEWのSELECT結果を一時テーブルにINSERTし、そのテーブルをSELECTするカーソルを使用するほうが 作法的によいのでしょうか?
- 締切済み
- Oracle
- FortranのOPEN文
OPEN(2,FILE='../data/'//FNAME//'c.dat') というOPEN文についての質問です.このOPEN文のファイル名の指定FILE=' 'のところがわからないので,教えていただきたいのです. ドット二つ(..)とスラッシュ1本(/),二本(//)の意味など,わかる方よろしくお願いします.
- ベストアンサー
- その他(プログラミング・開発)
- オープンオフィス BASE で
オープンオフィス BASE で AccessでのVBA、SQL文、に相当する記述はどのようにしますか SQL文は Delete、Insert、Update、Select の記述方法 複雑なようでしたら 何を学習すれば理解できるのか教えてください。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- SELECT * FROM セレクト文の解釈
SQL文について SELECT CustomerID, CompanyName FROM Customers セレクト文なのですがセレクトは その名の通り「選ぶ」という意味で fromは「から」という意味だと思うのですが select * from は「~から選んだ」みたいな解釈で良いのでしょうか? SQL初心者です。
- ベストアンサー
- SQL Server
- カーソル宣言をIFで分けられませんか?
よろしくお願いします。 Pro*Cで作成しているのですが、カーソルの宣言時に指定するSQLをIF文で分けようとすると、 コンパイル時に「PCC-W-02332, SQLの識別子を再定義しようとしました。」が表示されます。 IFの結果がどうであれ、カーソルが取得するレイアウトが同一かつ、OPEN後の処理も同じように処理するため、できれば同一のカーソル名で行いたいです。 以下は今の状態を簡略化したプログラミングですが、 どのように対処するのが良いのでしょう。 Oracle10.2です。 よろしくお願いします。 ------------------------------------------------------- int flg; <中略> if ( flg == 0 ) { EXEC SQL DECLARE curname CURSOR FOR SELECT tbl.col1, 'flgが0です' AS col2 FROM tbl ; } else { EXEC SQL DECLARE curname CURSOR FOR SELECT tbl.col1, 'flgが0以外です' AS col2 FROM tbl ; } EXEC SQL OPEN curname; EXEC SQL WHENEVER NOT FOUND DO BREAK; while(1) { EXEC SQL FETCH rackBCCur INTO :retVals <略> } -------------------------------------------------------
- ベストアンサー
- Oracle
- PL/SQL カーソルのFROM句にカーソル
もしご存知の方がいればお教えください。 ORACLE PL/SQLで CURSOR cur_a AS SELECT a FROM TBLA とカーソルを宣言し そのカーソルを他のカーソルで 使用することは可能でしょうか? 以下のような感じで CURSOR cur_B AS SELECT b FROM TBLB,cur_a ご存知の方が居たら どのようなSELECT文を 書けばよいかお教えください よろしくお願いいたします
- ベストアンサー
- Oracle
- セレクト文について
sqlのセレクト文について質問させて下さい。 フィールドのレコードに、a,b,c,d,eと登録されているデータから、"c"のデータだけをセレクト対象にしたい場合、どのようにsqlを書けばよいのでしょうか? 通常のセレクト文だと、WHERE句に、(フィールド名 = '値')などで格納されている値とデータの比較ができるかと思うのですが、上記のような場合はどのように指定するのでしょうか? フィールドを無駄に増やし過ぎないよう、カテゴリごとに配列をjoinでまとめたものをDBへ登録しているのですが、この場合だとイメージしているようなことは無理なんでしょうか? 宜しくお願い致します。
- ベストアンサー
- PHP
- SELECT文でLEFT関数を使うと未定義関数ですと言われる
VBソース上では SELECT LEFT(~~~,4) AS 項目 FROM テーブル と SELECT文で書いてもエラーにならずオープンできるみたいなのですが そのSQL文をACCESS2000上で動かすと 未定義関数LEFTがあると言われます どなたか分かる方至急お願いします!!!
- ベストアンサー
- その他(データベース)