0

パス名が文字列で渡されるスクリプトを SQLPlus で実行するにはどうすればよいですか。次のようなもの(失敗):

SET SERVEROUTPUT ON;
DECLARE
   path VARCHAR2(128);
BEGIN
   path := '<runtime_path>' || 'test_script.sql';
   dbms_output.put_line(path);
   @ path;
END;
/
4

4 に答える 4

2

パラメータを SQLPlus に渡すことはできますが、PL/SQL と SQLPlus コマンドを混在させることはできません。だからあなたの例は飛ばないでしょう。そのため、シェル スクリプトでラップする必要がある場合があります。しかし、PL/SQL ルーチンを見ると、パスを追加しようとしているだけです。たぶんこれは可能です。

このようにsqlplusを呼び出します

sqlplus user/password@database @genericscript.sql path

そして、genericscript.sql内

SET SERVEROUTPUT ON
start &1.myscript.sql
quit

私の例では、myscript.sql にはこのコンテンツがあります

select 'hello welt' from dual;

だから私はSQLPlusから次の出力を得ました

[oracle@localhost sqp]$ sqlplus user/pw@db @genericscript.sql /home/oracle/sqp/

SQL*Plus: Release 11.2.0.2.0 Production on Tue May 14 22:53:15 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


'HELLOWELT
----------
hello welt

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

それが役に立てば幸い。SQLPLUSリファレンスマニュアルをご覧ください。

http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_five.htm#autoId13

PDFの方がいい

http://docs.oracle.com/cd/E11882_01/server.112/e16604.pdf

于 2013-05-14T20:30:31.163 に答える
0

私が Windows で行う方法は、以下を含む BAT ファイルを作成することです。

sqlplus my_username/my_password@tns.test.company.com %*

コマンド プロンプトから、ファイルの SQL コンテンツを実行するには、次のように入力します。

batfile.bat @myfile.sql
于 2013-05-14T20:17:03.047 に答える