-PR-
解決
済み

PL/SQLでのSQL文法

  • すぐに回答を!
  • 質問No.74660
  • 閲覧数833
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 71% (20/28)

こんにちは。教えてください。
PL/SQLを使うのが初めで戸惑っています。
まず、PROCEDUREで
===========================
BEGIN

SELECT NAME FROM TABLE1 WHERE NAME='tanaka';

END;
/
===========================
このように書いて実行させようとすると、「コンパイルエラー」
「INTO句はこのSELECT文に入ります」というエラーが出ます。
SQLの文法的には間違ってないと思うのですが、INTO句とはこれいかに??

ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎて
わかりませんでした。
PL/SQLやORACLEのメーリングリストでお勧めがありましたら教えてください。
よろしくお願いいたします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル10

ベストアンサー率 32% (12/37)

コーディング例です。

**************************************************
*非ループ処理の例
**************************************************
.CREATE OR REPLACE PROCEDURE JOB1
.IS
.
.  w_NAME1  CHAR(10);
.
.BEGIN
.
.  SELECT NAME1 INTO w_NAME1 FROM TABLE1
.  WHERE TBL1_KEY = 'tanaka';
.
.  UPDATE TABLE2 SET NAME2 = w_NAME1
.  WHERE TBL2_KEY =  'tanaka';
.
.  COMMIT;
.
.EXCEPTION
.  WHEN OTHERS THEN
.    ROLLBACK;
.END;
./
**************************************************
*ループ処理の例
**************************************************
.CREATE OR REPLACE PROCEDURE JOB2
.IS
.
.  w_TABLE1 TABLE1%ROWTYPE;
.
.  CURSOR  c_TABLE1 IS
.  SELECT  NAME1
.  FROM   TABLE1
.  ORDER BY NAME1;
.
.BEGIN
.
.  OPEN c_TABLE1;
.
.  LOOP

.    FETCH
.      c_TABLE1
.    INTO
.      w_TABLE1;
.    EXIT WHEN c_TABLE1%NOTFOUND;
.
.    UPDATE TABLE2 SET NAME2 = w_TABLE1.w_NAME1
.    WHERE TBL2_KEY = w_TABLE1.w_TBL1_KEY;
.
.  END LOOP;
.
.  CLOSE c_TABLE1;
.
.  COMMIT;
.
.EXCEPTION
.  WHEN OTHERS THEN
.    ROLLBACK;
.END;
./

先頭のピリオドは無視してください。どこかにミスがあったらごめんなさい。
お礼コメント
laa_laa_ts

お礼率 71% (20/28)

回答ありがとうございます。
ご丁寧にコードでの解説、すごくわかりやすかったです。
実際mori0309さんのコーディングを参考に実行してみたら
値を取得することができました。
今回の業務はこれで事足りるのですが、これからも使うことがあると思うので
ちゃんと理解するよう勉強したいと思います。大変参考になりました。
どうもありがとうございました。
投稿日時 - 2001-05-14 22:14:45
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 40% (135/330)

SELECT NAME INTO work FROM TABLE1 WHERE NAME='tanaka'; じゃないでしょうかねえ。 INTOで読み込まれる領域を指定するんではないかと。 PL/SQLは知りませんが。 ...続きを読む
SELECT NAME INTO work FROM TABLE1 WHERE NAME='tanaka';
じゃないでしょうかねえ。
INTOで読み込まれる領域を指定するんではないかと。
PL/SQLは知りませんが。
補足コメント
laa_laa_ts

お礼率 71% (20/28)

さっそくの解答ありがとうございます。
領域ですか。
領域とは・・・・・・・????

環境を書き忘れていました。
WinNT4.0(SR6)
Oracle8
ObjectBrowser7.0
です。

OracleもObjectBrowserも使うのが初めてで右も左もわからない状態です。SQLServerで使っていたSQLでは通用しないのでしようか・・・。
投稿日時 - 2001-05-11 17:36:47
お礼コメント
laa_laa_ts

お礼率 71% (20/28)

回答ありがとうございました。
せっかく教えていただいたので理解力不足ですみませんでした。
みなさんの回答を参考に、しっかり勉強致します。
ありがとうございました。
投稿日時 - 2001-05-14 22:16:21


  • 回答No.2
レベル10

ベストアンサー率 42% (79/186)

PL/SQLでSelect文を使うときには、カーソルなり変数(ishmasterさんの言っている領域)に代入する必要があります。でないと、Select文で引っ張ってきたデータを使うことができません。 変数・カーソルへの代入というと構文が少し変なのですが、ishmasterさんの構文でデータベースからデーターを持ってこれると思ってください。 PL/SQLは、Select文は普通のSQLと少し違います ...続きを読む
PL/SQLでSelect文を使うときには、カーソルなり変数(ishmasterさんの言っている領域)に代入する必要があります。でないと、Select文で引っ張ってきたデータを使うことができません。
変数・カーソルへの代入というと構文が少し変なのですが、ishmasterさんの構文でデータベースからデーターを持ってこれると思ってください。

PL/SQLは、Select文は普通のSQLと少し違いますが、INSERT、DELETE、UPDATEはほとんど普通に使えます。ただし、CREATE、DROPなどは原則として使えません。(方法はありますが・・・)
お礼コメント
laa_laa_ts

お礼率 71% (20/28)

回答ありがとうございます。
私はVBやAccessのように単純なSQLをぽんぽんと並べれば
実行してくれるのかと勘違いしていました。
そうではないんですね。
少し勉強しないとだめみたいです。
みなさんに教えていただいたことを頭にいれてがんばりたいと思います。
ありがとうございました。
投稿日時 - 2001-05-14 22:08:49
  • 回答No.3

こんにちは、jotarou といいます。 コーディングは、ishmaster さんので良いと思います。 >ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎてわかりませんでした。 これに関しては、”暗黙カーソル”と入れてお調べください。 >SQLServerで使っていたSQLでは通用しないのでしようか・・・。  難しいとは聞いているのですが、全くの初心者でないのでし ...続きを読む
こんにちは、jotarou といいます。
コーディングは、ishmaster さんので良いと思います。

>ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎてわかりませんでした。

これに関しては、”暗黙カーソル”と入れてお調べください。

>SQLServerで使っていたSQLでは通用しないのでしようか・・・。

 難しいとは聞いているのですが、全くの初心者でないのでしたら、通用する部分があると思いますけど・・・。

では・・。
お礼コメント
laa_laa_ts

お礼率 71% (20/28)

回答ありがとうございます。
教えていただいたとおり、暗黙カーソルでたくさんヒットしました。
まず、カーソルとはなんぞや、から勉強しないといけません。
一冊本を買ってじっくり取り組もうと思います。
みなさんに教えていただいたこと大変勉強になりました。
また質問することもあると思いますがよろしくお願い致します。
投稿日時 - 2001-05-14 22:12:19
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ