Linux で Oracle 11g を実行しており、データベースを作成するスクリプトを実行しようとしています。このスクリプトは Windows では問題なく動作しますが、Linux でテストすると、次のエラーが発生します。
SP2-0556: Invalid File Name
問題は、ファイル名へのパスにスペースが含まれている可能性があります。問題を単純化するために、ファイルで実行する多くのコマンドの 1 つにまで単純化します。実行しようとしているサンプル コマンドは次のようになります。
sqlplus [uname]/[pw] @'../database/My Schema/create_sequence.sql'
create_sequence.sql ファイルには、単独で正常に実行される 2 つの単純な create sequence コマンドがあります。ディレクトリ名を My Schema から MySchema に変更し、それに応じて上記の sqlplus コマンドを変更すると、スクリプトが正常に実行されるため、空白が原因であると強く疑われます。
私が言ったように、このスクリプトはスペースのあるウィンドウでは機能しますが、Linux では機能しません。スペースがサポートされていないのではないかと思いますが、何か違うことを知っている人がいるかどうか、または回避策があるかどうか疑問に思っていましたか?
補足:次のようなコマンドを実行します:
more ../database/My\ Schema/create_sequence.sql
また
more "../database/My Schema/create_sequence.sql"
期待どおりに、ファイルの内容をコンソールに出力します。したがって、これは sqlplus (および Linux) 固有のものだと思います。