
batファイルでSQLを実行したいのですが、エラーが出て、原因が分かりません。
batファイルの中身は、下記です。
@echo off
sqlplus -s HAN/HAN@HANBAI @C:\insert.sql
insert.sql の中身は下記のとおりです。
MERGE INTO HANG.TEST_HOJO_SHOHINM X
USING
(SELECT
A.ITM_CD,
A.ITM_NM,
C.UPRI
FROM MCJTR.MV_MAM_ITM_ALL A
LEFT JOIN MCJTR.MV_MAM_ITM_COM B
ON A.ITM_CD = B.ITM_CD
LEFT JOIN MCJTR.MV_MAM_ITM_SLS_UPRI_ALL C
ON A.ITM_CD = C.ITM_CD
) Y
ON (TRIM(X.SHO_GAIC) = TRIM(Y.ITM_CD))
-- 条件に一致する
WHEN MATCHED THEN
UPDATE SET
SHO_DEL_KBN = '',
SHO_HINSHUNM = ''
-- 条件に一致しない
WHEN NOT MATCHED THEN
INSERT
(
SHO_GAIC,
SHO_DEL_KBN,
SHO_HINSHUNM
)
VALUES
(
SUBSTRB(TRIM(Y.ITM_CD), 1, 10),
'',
''
);
OsqlEditからは実行してもエラーが出ず、
データを登録できます。
バッチファイルから実行すると、下記エラーが出ます。
SP2-0042: 不明なコマンドです("USING")。行の残りは無視されました。
SP2-0734: "WHEN MATCH..."で開始するコマンドが不明です - 残りの行は無視されました。
SP2-0734: "WHEN NOT M..."で開始するコマンドが不明です - 残りの行は無視されました。
(
*
行2でエラーが発生しました。:
ORA-00925: INTOキーワードがありません。
原因、解決方法を教えていただきたいです。
No.1ベストアンサー
- 回答日時:
エディタとバッチコマンドの仕様の違いじゃないのかな。
エディタで見た目が分かりやすくするためにコマンドの引数を分けて記述しているようですが、
バッチコマンドでは行を分けたものは引数として認識されていないのだろうと推測します。
コマンドを1行にまとめてみてはいかがでしょう。
・・・
すみません。
自分、sqlplusコマンドなんて使ったことないんですわ。
そんなわけで、エラーメッセージから推測される原因を考えて回答しています。
ですので的外れな回答になっているかもしれません。
ご了承ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
このQ&Aを見た人はこんなQ&Aも見ています
-
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
バッチファイルを使用したsql@plusの実行及びログ出力について
Oracle
-
-
4
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
5
PL/SQLで@ファイル名が反応しません
Oracle
-
6
SQL実行結果取得
Oracle
-
7
sqlplusでヘッダーが付かない
Oracle
-
8
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
9
SQLPLUSで結果を画面に表示しない
Oracle
-
10
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
11
ストアド・プロシージャをバッチから起動させて実行する方法
Oracle
-
12
oracle spool SJIS → UTF-8
Oracle
-
13
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
14
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
15
sqlのエラーハンドリングについて質問です。
Oracle
-
16
OracleのSQL*PLUSで、データが折り返されて見づらいのですが。。。
その他(データベース)
-
17
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
18
バッチでのSQL実行結果の分岐処理について。
SQL Server
-
19
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
20
SQL*Plusで、コマンドの返答を非表示にする方法
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
JavaでのOracle接続について(J...
-
PL/SQLでログを確認したい。
-
ストアド・プロシージャをバッ...
-
Accessからoracleのストアドプ...
-
ソート(大文字・小文字を区別...
-
SQL実行結果取得
-
SQL*PLUSを終了させる方法
-
execute使用した時の、完了メッ...
-
SQL*Plusで、コマンドの返答を...
-
pl/sqlでのautotraceについて
-
マテリアライズドビューを利用...
-
ORA-01013のエラーについて経験...
-
xy平面上の点P(x,y)に対し,点Q(...
-
4GB = 4096MB ではない?
-
DOSプロンプトとコマンドプロン...
-
ORA-12571パケット書き込みエラ...
-
はじめまして!
-
PL/SQL PLS-00103エラーについて
-
クローンソフトで、Acronis Tru...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
SQL*Plusで、コマンドの返答を...
-
PL/SQLでログを確認したい。
-
トレースファイルの削除スクリプト
-
ORA-00984のエラーが出ます
-
ストアド・プロシージャをバッ...
-
SQL実行結果の出力を見やすくし...
-
ソート(大文字・小文字を区別...
-
batファイルでのSQL(oracle)...
-
Accessからoracleのストアドプ...
-
SQL実行結果取得
-
oracle11g listener.logの削除
-
サービスの再起動を自動で
-
pl/sqlでのautotraceについて
-
【spoolコマンドで追記】
-
JavaでのOracle接続について(J...
-
マテリアライズドビューログに...
-
シェル上でDBコマンドをループ...
-
SQL*Plusで以前に実行したコマ...
-
SQL*PLUSを終了させる方法
おすすめ情報