• 締切済み

PLSQL キーボード入力値を引数で渡す方法

OracleのPL/SQLで promptコマンドを使用して キーボードから日付の入力を受け付けるプログラムがあり、 SQLplusから実行しています。 このプログラムをキーボードからではなく バッチやスクリプトから日付を指定して実行する方法がわかりません。 わかる方がいれば教えてください。 PL/SQLのプログラム自体は変更をしないという要件の為 バッチやスクリプトから引数として渡せないか検討しています。

  • Oracle
  • 回答数1
  • ありがとう数0

みんなの回答

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.1

> PL/SQLのプログラム自体は変更をしないという要件の為 現状どうやっているのか具体的に提示できますか?

関連するQ&A

  • sqlplusで引数渡しを行い、sql内でさらにその引数の一部の使用法

    sqlplusで引数渡しを行い、sql内でさらにその引数の一部の使用法 Oracle:10.2.0.1.0 Windows:XP 例えば sqlplus test/test @hoge.sql 2010 10M にて実行しますが(年・月の意味の引数をわたしています) hoge.sqlのCD1_xの数値1が引数の一部10を取得できるようにSQLに埋め込みたいと考えています。年と月で抽出するパターンが12カ月分ありまして、このCSV作成時に10Mというデータも埋め込みが必要なため、引数を単純に10にはしたくはないのです。 良い方法がありましたらお教えして頂きたくどうぞ宜しくお願いいたします。 <TESTテーブルのレイアウト> CD1_1~CD1_6、CD2_1~CD2_6、・・・CD12_1~CD12_6の12カ月分の項目があります。 <バッチファイルにて引数を指定し実行する> sqlplus test/test @hoge.sql %1 %2 <呼び出すhoge.sqlの内容> spool c:\test\data_&1&2.csv select PRODUCT_ID||','|| '&1'||','|| '&2'||','|| CD1_1||','|| <-- ここはCD1_1ではなくてCDx_1的な。xは引数の一部にしたいのです。 CD1_2||','|| CD1_3||','|| CD1_4||','|| CD1_5||','|| CD1_6 from TEST; spool off exit

  • shからPL/SQLブロックを実行する方法

    Solaris上でshスクリプト中からPL/SQLを記述したファイルを呼び出して、Oracleのテーブルに対して操作したいのですが、 test.shファイル #/bin/sh sqlplus userid/password@ddzk test.sqlファイル DECLARE … BEGIN INSERT INTO table VALUES( …  ) END; / コマンドラインから $./test.sh を実行すると、 ./test.sh: sqlplus: 見つかりません。 と表示されます。 どなたかshスクリプトからPL/SQLで記述したファイルを実行する 方法をご存知の方、ご教示願います。

  • SQL*PLUSを終了させる方法

    シェルスクリプトから、SQL*PLUSを呼んでいますが、 sqlplusコマンドを実行したとき、 PL/SQLプロシージャが正常に完了しました。 SQL> と入力待ちになってしまいます。 この入力待ちで止まってほしくないのですが、 どうすればよいでしょうか。 ご教示お願いいたします。

  • 【SQLite】 sqlファイルに引数を渡したい

    バッチでoracleでいう sqlplus scott/tiger@orcl @test.sql "%1" のようなことをSQLiteでやりたいのですが、可能でしょうか? ※ sqlite3.exe Sample.db < test.sql "%1" みたいなことです。

  • OSQLからスクリプトファイルへの引数の渡し方

    こんにちは。 OSQLからの値の渡し方について教えて下さい。 バッチファイルの中にOSQL文を使用してデータを抽出する事を考えています。 具体的には、バッチファイルを実行時に日付を入力し、 入力された日付をOSQL文の中に記述しているスクリプトファイルへ値を渡し、 スクリプトファイルにあるSQL文を実行するというやり方です。 **バッチファイル** set /p %hiduke = "日付を入力して下さい。yyyymmdd -->" osql -S インスタンス -U ユーザ名 -P パスワード -d DB名 -i c:\script.sql > C:\結果.txt **スクリプトファイル(script.sqlファイル)** declare @hiduke char(8) set @hiduke = バッチから渡された値を指定 select * from uriage where 日付 = @hiduke という風な感じで考えています。 バッチからOSQLへの渡し方と、OSQLからスクリプトファイルへの渡し方、 その他、良い案があれば教えて頂けないでしょうか。 よろしくお願いします。

  • Oracle8iの使用方法について

    今回、初めてOracleを扱うことになりました。 やることは、PL/SQLのプログラムを作成、 テストです。 現在、PL/SQLのプログラムを作成しました。 これから後の作業で使用するツール(画面)が よくわからないので教えてください。 1.コンパイル SQLPLUSで、ファイルを開いて、「@ファイル名.sql」で コンパイルでいいのでしょうか? WorkSheetでも出来ると聞いたのですが、 どのツールが便利でしょうか? 2.テスト 作成したPL/SQLのプログラムを実際 試す場合、SQLPLUSの実行でいいのでしょうか? 実際のプログラムの内容は、 あるファイルを読みこんで、テーブルのデータを 更新する、といったものなんですが・・・ ★その他質問 1)CSEというソフトをダウンロードしたのですが、 これは、Accessのように使えるんですか? テストで使うデータは、Accessのように、 CSEで値を入力すればいいんでしょうか? データは一般的にどのツールで作成するのが いいのでしょうか? 2)オブジェクトブラウザというのは、なんのことでしょうか? 3)他に、Oracleで使用するメジャーなツール がありましたら、教えてください。 以上、初歩的な質問で申し訳ありませんが よろしくお願いします。

  • pl/sqlでのautotraceについて

    PL/SQLの実行計画を取得したいのですが、autotraceを指定しても その結果が表示されません。結果表示のためにはsqlplusと違った 考慮が必要なのでしょうか。oracleに詳しい方、教えてください。 よろしくお願い致します。

  • バッチスクリプトでの引数の囲み文字の取り扱い

    お世話になります。 Windowsのバッチスクリプトで、スクリプトに指定する引数の、スクリプト内部での引数の囲み文字「""」の取り扱われ方についてご教授下さい。 現在使用しているバッチスクリプトは引数を使用していますが、各引数を「":ダブルコーテーション」で囲んで指定しています。 個の引数は他のシステム(AS400)のジョブ起動、ファイル名作成にそのまま使用しております。 バッチスクリプトとパラメータ指定は下記の通りになります。    スクリプト名 "引数1" "引数2" スクリプト内部では"引数1" "引数2"を%1、%2で参照しています。 スクリプト内部のパラメータ展開を調査する為、該当部分の文字列をECHOで出力しました。 ・AS400のジョブ起動のコマンドはパラメータ部分に引数を指定しており  rmtcmd SBMJOB CMD(CALL PGM("引数1"/"引数2") ・引数を使用したファイル名指定では  \jobcon\"引数1""引数2".txt と展開されておりました。 AS400のコマンドは引数の「":ダブルコーテーション」を外した内容で処理されており、 ファイルも「":ダブルコーテーション」が外れたファイル名で作成されました。 IF文等では「":ダブルコーテーション」を付けた形式でなくては比較できません。 バッチスクリプトでの文字列中の「":ダブルコーテーション」の取り扱われかたについてご教授下さい。 宜しくお願いします。

  • DOSから起動した際のSQLPLUSウィンドウ表示

    OS:WINDOWS NT4.0 ORACLE Personal 7.3.4 VBのアプリケーションを作成しています。 行う内容は  (1)VBのフォームでボタン押下  (2)DOS(バッチファイル)起動  (3)バッチファイルよりORACLE SQLPLUS起動   (USERのDROP&CREATE実行)  (4)バッチファイルよりORACLE IMPORT実行   (指定ファイルのIMPORT) です。 処理的には問題ないのですが、(3)の実行時にSQL*PLUSのウィンドウが見えてしまいます。 (2)の実行時に「START /MIN ~(SQLPLUSコマンド)」を行っている為か、ORACLE9ⅰですとSQLPLUSの表示はされないのですが、今回対象の7.3.4だと見えてしまいます。 見栄えが悪いところを突っ込まれているので、最小化でも構わないのですが、SQLPLUSの起動オプション等には特に解決できるものは探すことができませんでした。  なにか有効な方法をご教授いただきたいです。 みなさま宜しくお願いします。

  • シェルスクリプトに引数を渡す方法?

    次のようなシェルスクリプトを作り、バッチ処理で実行したいのですが、うまくいかず困っています。 %ls test.sh data %less test.sh #!/bin/sh calc.exe input=$1 コマンドから通常実行するときは、 % test.sh data でうまく行きます。 これを、qsubを使ったバッチ処理で実行しなければならなくて、 %qsub test.sh data とすると、qsubは引数を1つしか取れないので、構文エラーとなり、うまく入力引数"data"を渡せません。 %qsub "test.sh data" %qsub 'test.sh data' で、引数を1つにしようとしましたが、ダメでした。 引数ファイル名"data"は、名前が変わるので、できるだけ可変になるようにしたいです。 どなたか、解決法もしくは、参考URLなど教えてください。