
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
バッチからsqlplusの接続エラーの検知について
その他(プログラミング・Web制作)
-
PL/SQLで@ファイル名が反応しません
Oracle
-
-
4
バッチファイルを使用したsql@plusの実行及びログ出力について
Oracle
-
5
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
6
SQL実行結果取得
Oracle
-
7
sqlplusでヘッダーが付かない
Oracle
-
8
oracle spool SJIS → UTF-8
Oracle
-
9
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
10
SQL*Plusで、コマンドの返答を非表示にする方法
Oracle
-
11
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
12
OracleのSQL*PLUSで、データが折り返されて見づらいのですが。。。
その他(データベース)
-
13
SQL Plusで項目名が最後まで表示されない?
Oracle
-
14
ストアド・プロシージャをバッチから起動させて実行する方法
Oracle
-
15
バッチでのSQL実行結果の分岐処理について。
SQL Server
-
16
sqlplusで表示が変なので、出力を整形したい。
Oracle
-
17
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
18
SQL*Loaderでのsysdate使用
Oracle
-
19
Statement ignored というエラー
Oracle
-
20
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルでのSQL(oracle)...
-
PL/SQLでログを確認したい。
-
リスナーログを出力しない設定方法
-
SQL*Plusで、コマンドの返答を...
-
SPOOL出力先のフォルダにSpace...
-
SQL実行結果取得
-
ストアド・プロシージャをバッ...
-
マテリアライズドビューを利用...
-
富士通のノートパソコンを使っ...
-
パーティション、未割当ての利...
-
ORA-01013のエラーについて経験...
-
新規表領域の作成について
-
データのインポートについて
-
【oracle10g 】Oracle Enterpri...
-
DATABSE LINKについて
-
DOSプロンプトとコマンドプロン...
-
非MS-DOS領域が作られてしまい...
-
ORA-06502のエラー
-
CASE文のエラーについて
-
フルインポートで警告が発生します
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
ストアド・プロシージャをバッ...
-
batファイルでのSQL(oracle)...
-
SQL実行結果取得
-
ORA-00984のエラーが出ます
-
サービスの再起動を自動で
-
トレースファイルの削除スクリプト
-
oracle11g listener.logの削除
-
execute使用した時の、完了メッ...
-
SQL*PLUSを終了させる方法
-
JavaでのOracle接続について(J...
-
マテリアライズドビューログに...
-
SQL実行結果の出力を見やすくし...
-
Accessからoracleのストアドプ...
-
リスナーログを出力しない設定方法
-
ソート(大文字・小文字を区別...
-
アクセスログのとり方を教えて...
-
pl/sqlでのautotraceについて
おすすめ情報