
SQL*PlusでSPOOLコマンドを使用してログファイルを出力する場合に、
フォルダ名を指定したいのですが、フォルダ名にSpaceがある時に
エラーになってしまいます。
(エラーがでる例)
SQL>SPOOL C:\Documents and Settings\All Users\デスクトップ\TEST.log
SP2-0333: 不正なスプール・ファイル名: "C:\Documents and Settings\All Users\デスクトップ"(不正文字: ' ')
フォルダ名とファイル名全体を、''で囲んでも同じエラーがでます。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
8.3形式を利用したらできないかな?
※8.3形式について
http://e-words.jp/w/82E3E5BDA2E5BC8F.html
今気づいたんだけど、XPってフォルダのプロパティを見ても、旧形式のフォルダパスって出ないのですね。。。
http://www.atmarkit.co.jp/fwin2k/win2ktips/606di …
のような方法もあるようですが、、、面倒そうなので、簡単なVBスクリプトを作ってみたので張っておきます。
応用したら、バッチの作成のスクリプトも作成できるかと思います。
もし、VBスクリプトが未経験であれば、、、、、
http://okwave.jp/qa1559190.html
の#3の手順4~6を読みながら、以下のコードを貼り付けてください。
Option Explicit
Dim objArgs
Set objArgs = WScript.Arguments
Call GetShortPath(objArgs)
Set objArgs = Nothing
Private Sub GetShortPath(arg)
Dim fsoObj
Dim fsoDir
Dim objParam
if arg.Count() < 1 Then
MsgBox "このスクリプトファイルに、任意のフォルダをドラッグしてください。"
Exit Sub
End If
Set fsoObj = CreateObject("Scripting.FileSystemObject")
'パラメータループ
For Each ObjParam in arg
'フォルダであるかをチェック
If fsoObj.FolderExists(objParam) Then
'フォルダが見つかった場合、出力を行う
Set fsoDir = fsoObj.GetFolder(objParam)
Call InputBox(fsoDir.Path, "フォルダを8.3形式に変換", fsoDir.ShortPath)
'一個だけ、処理をしたら、本メソッドは終了する
Exit Sub
End If
Next
'ここまでステップが行われた場合は、フォルダがひとつもドラッグされなかったことを意味する
MsgBox "このスクリプトは、フォルダのみに対応しています。任意のフォルダをドラッグしてください。"
End Sub
回答ありがとうございます。
8.3形式について、回答を参考にさせて頂き、
いろいろと調べてみたところ、この方法で問題なさそうです。
丁度、VBアプリケーションから、SQLファイル作成~
SQL*Plusを直接呼び出して、SQLファイルを実行する処理を
行っていましたので、SQLファイルを作成する直前に8.3形式の
フォルダ名を取得できるので、問題も発生しないと思います。
本当に、ありがとうございました。
No.4
- 回答日時:
もう解決かもしれませんが
sqlplusを実行する前に
cdコマンドでカレントディレクトリを変更してみては?
cd "C:\Documents and Settings\All Users\デスクトップ\"
sqlplus /nolog
connect ユーザ/パスワード@接続文字列
spool TEST.log
回答ありがとうございます。
今回は、1050YENさんの方式でやってみようと思います。
回答は、今後の参考にさせて頂きます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
SQL実行結果取得
-
ストアド・プロシージャをバッ...
-
PL/SQLでログを確認したい。
-
サービスの再起動を自動で
-
pl/sqlでのautotraceについて
-
JavaでのOracle接続について(J...
-
batファイルでのSQL(oracle)...
-
ORA-00984のエラーが出ます
-
SQL*Plusで以前に実行したコマ...
-
SQL*Plusで、コマンドの返答を...
-
PL/SQLからshellスクリプ...
-
ShellからTruncate【Linux】
-
PL/SQLからディレクトリ作成
-
RMANのバッチ実行に関して
-
pl/sqlでselect文の結果をCSV出...
-
execute使用した時の、完了メッ...
-
【spoolコマンドで追記】
-
SPOOL出力先のフォルダにSpace...
-
ORA-01013のエラーについて経験...
マンスリーランキングこのカテゴリの人気マンスリー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を終了させる方法
おすすめ情報