アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQL*PlusでSPOOLコマンドを使用してログファイルを出力する場合に、
フォルダ名を指定したいのですが、フォルダ名にSpaceがある時に
エラーになってしまいます。
(エラーがでる例)
SQL>SPOOL C:\Documents and Settings\All Users\デスクトップ\TEST.log
SP2-0333: 不正なスプール・ファイル名: "C:\Documents and Settings\All Users\デスクトップ"(不正文字: ' ')

フォルダ名とファイル名全体を、''で囲んでも同じエラーがでます。

よろしくお願いします。

A 回答 (4件)

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
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

8.3形式について、回答を参考にさせて頂き、
いろいろと調べてみたところ、この方法で問題なさそうです。
丁度、VBアプリケーションから、SQLファイル作成~
SQL*Plusを直接呼び出して、SQLファイルを実行する処理を
行っていましたので、SQLファイルを作成する直前に8.3形式の
フォルダ名を取得できるので、問題も発生しないと思います。

本当に、ありがとうございました。

お礼日時:2006/11/28 15:49

もう解決かもしれませんが


sqlplusを実行する前に
cdコマンドでカレントディレクトリを変更してみては?

cd "C:\Documents and Settings\All Users\デスクトップ\"
sqlplus /nolog
connect ユーザ/パスワード@接続文字列
spool TEST.log
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回は、1050YENさんの方式でやってみようと思います。
回答は、今後の参考にさせて頂きます。
ありがとうございました。

お礼日時:2006/11/28 16:04

ファイル名をシングルクオーテーションで囲うと、動作しませんか。

この回答への補足

質問が見にくくて申し訳ありません。
最後から2行目の '' はシングルクォーテションを2つ並べています。

シングルクォーテションで囲ってもやはり同じエラーがでます。
念の為、ダブルクォーテションも試しましたが、同じでした。

補足日時:2006/11/28 15:50
    • good
    • 0

仕様上無理なモノは無理です。



SUBST等で仮想ドライブへマウントするなど代替え策を考えるしかありません。
    • good
    • 0
この回答へのお礼

SUBSTを試して問題なく出力できることを確認しました。
ただ、エクスプローラなどにも仮想ドライブが表示されてしまうので、
今回は、1050YENさんの方式でやってみようと思います。

回答ありがとうございました。

お礼日時:2006/11/28 15:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す