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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
-
4
PL/SQLで@ファイル名が反応しません
Oracle
-
5
インポートコマンドが認識されません
Oracle
-
6
ストアド・プロシージャをバッチから起動させて実行する方法
Oracle
-
7
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
8
sqlplusの処理が途中でとまる
Oracle
-
9
sqlplusでヘッダーが付かない
Oracle
-
10
バッチファイルを使用したsql@plusの実行及びログ出力について
Oracle
-
11
sqlのエラーハンドリングについて質問です。
Oracle
-
12
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
13
PL/SQLでログを確認したい。
Oracle
-
14
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
15
SQL*Plusの終了はquit?exit?
Oracle
-
16
PL/SQLでSPOOLさせたいのですが、可能でしょうか?
Oracle
-
17
VBScriptでSQLファイルの実行
その他(プログラミング・Web制作)
-
18
sqlplusのspoolで空白行出現
Oracle
-
19
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
20
oracle spool SJIS → UTF-8
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
SQL*PLUSを終了させる方法
-
Oracleで流したSQLのログを取得...
-
ORA-00984のエラーが出ます
-
SQL*Plus:SPOOLコマンドでのSQ...
-
トレースファイルの削除スクリプト
-
batファイルでのSQL(oracle)...
-
execute使用した時の、完了メッ...
-
シェル上でDBコマンドをループ...
-
JavaでのOracle接続について(J...
-
PL/SQLからディレクトリ作成
-
SQL実行結果の出力を見やすくし...
-
ストアド・プロシージャをバッ...
-
ShellからTruncate【Linux】
-
ソート(大文字・小文字を区別...
-
SPOOL出力先のフォルダにSpace...
-
PL/SQLからshellスクリプ...
-
ORACLEの停止失敗
-
ORA-01013のエラーについて経験...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLでログを確認したい。
-
SQL実行結果の出力を見やすくし...
-
Oracleで流したSQLのログを取得...
-
ストアド・プロシージャをバッ...
-
batファイルでのSQL(oracle)...
-
SQL*Plusで、コマンドの返答を...
-
トレースファイルの削除スクリプト
-
マテリアライズドビューログに...
-
Accessからoracleのストアドプ...
-
SQL実行結果取得
-
【spoolコマンドで追記】
-
SPOOL出力先のフォルダにSpace...
-
JavaでのOracle接続について(J...
-
ShellからTruncate【Linux】
-
リスナーログを出力しない設定方法
-
ソート(大文字・小文字を区別...
-
PL/SQLからshellスクリプ...
-
PL/SQLからディレクトリ作成
-
pl/sqlでのautotraceについて
-
サービスの再起動を自動で
おすすめ情報