
現在、WindowsXP環境で、オラクル11g R2を勉強中です。SQL*Plus でSELECT文を1つ実行し、その後、SAVEコマンドを使ってバッファをファイルに保存しました。ファイルの中身は、メモ帳で開くと、以下のような感じです。
SELECT no FROM student
/
バッファをクリアして、このファイルをGETコマンドでバッファに読み込み、RUNコマンドで正常に実行できました。
今度は、違うSELECT文を実行します。次に、「SAVE ファイル名 APPEND」で、実行したバッファの内容を、先ほどのファイルに追加しました。ファイルの中身は、メモ帳で開くと、以下のような感じです。
SELECT no FROM student
/
SELECT no,name FROM student
/
ところが、バッファをクリアして、上記のファイルをGETコマンドで読み込み、RUNコマンドで実行すると以下のようなエラーになります。
SQL> run
1 SELECT no FROM student
2 /
3* SELECT no,name FROM student
/
*
行2でエラーが発生しました。:
ORA-00933: SQLコマンドが正しく終了されていません。
APPENDで追加する前のSQL文では、問題なかったので、APPENDしたことで、最初のSQL文の終端がおかしくなったようです。気になるのは、SQL文の次の行に挿入されている / です。なぜ、このような文字が勝手に挿入されるのでしょうか?これは、Windows 環境が原因でしょうか?それとも、SAVE APPENDのバグでしょうか?
初歩的な質問で恥ずかしいのですが、原因や対策方法がおわかりの方がいらっしゃいましたら、教えていただけないでしょうか。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
想像ですが、SQL*Plusは一個のSQL文しか処理しませんよね。
つまり、APPENDで複数のSQL文を格納したファイルを@ファイル名で実行した後に、
listと入力すると最後のSQL文だけが表示されますよね。
しかし、get ファイル名の後にlistすると複数の文が表示されます。
SQL*Plusの通常の状態ではSQL文は1つしか許さないのに複数のSQL文がしかも/付きで
バッファにあるので、そのような状態は考慮していないのでしょう。
ま、仕様がちゃんと考慮されてないのでしょうね
No.2
- 回答日時:
試してみました。
確かにappendでsaveしてrunで実行するとエラーになりますね。
回避方法としては
@ファイル名
で実行するとちゃんとエラーなく実行されます。
こちらの環境は、Linux RedHat4.7 Oracle EE
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
です。
この回答への補足
Linuxでも同じですか・・・。
Windows だからダメなのかと思っていました。
これはもう、「バグ」ってことでいいですね。
「仕様」ってことはないですよね。
とりあえず、貴重な時間を割いて実験していただいて感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PL/SQLで@ファイル名が反応しま...
-
PL/SQLをWindowsのBATファイル...
-
複数行をINSERTで『ORA-00911: ...
-
comment on columnについてわか...
-
create databaseがうまくいきま...
-
データベースファイル(.db)を開...
-
あるDBから別のDBのテーブルをs...
-
同じSQL文で極端に検索が遅くな...
-
漢字や平仮名の文字をSQLで実行...
-
作成したレコードセットのCSV出...
-
メンテナンスプランについて
-
mysqlデータベース内のuserテー...
-
mysqlにおけるホストのパーセン...
-
mySQLのデータベースにhtmlのコ...
-
バッチでAccessのmdbファイルを...
-
phpMyAdminでのデータのインポ...
-
Mysqlのデータベースのリンク
-
人口の都道府県別の割合を求め...
-
SQLServerのselect文でデータ数...
-
どの程度のデータベースなら、c...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLで@ファイル名が反応しま...
-
PL/SQLをWindowsのBATファイル...
-
create databaseがうまくいきま...
-
comment on columnについてわか...
-
sqlplus で テキストファイルに...
-
DBMS_SQL.EXECUTEの問合せ結果件数
-
複数行をINSERTで『ORA-00911: ...
-
SQL*Loaderでのデータロード
-
【初心者です】SQLPLUSでのバッ...
-
SQL*Plus のSAVEとGETコマンド
-
phpMyAdminのコントロールパネ...
-
Oracleのタイムゾーン変更方法...
-
文字化け。
-
データベースファイル(.db)を開...
-
あるDBから別のDBのテーブルをs...
-
sql*loader 数値のロード
-
同じSQL文で極端に検索が遅くな...
-
数字で「そ」と「り」
-
mysqlにおけるホストのパーセン...
-
SQLServerのselect文でデータ数...
おすすめ情報