sqlplus を介していくつかの sql ファイルを実行する bash スクリプトがあります。
sqlplus $connectioninfo << end
start file1.sql
start file2.sql
start file3.sql $variable
quit
end
file3 にはいくつかの PL/SQL があります。
BEGIN
DBMS_OUTPUT.PUT_LINE(&1);
END;
/
"&1"
ただし、の値の代わりにリテラルを出力するだけです$variable
。file3 で次のことも試しました。
DEFINE var_a = &1;
BEGIN
DBMS_OUTPUT.PUT_LINE(var_a);
END;
/
また、次のこともできます。
DECLARE
var_b VARCHAR2(64) := &1;
BEGIN
DBMS_OUTPUT.PUT_LINE(var_b);
END;
/
そして最後に:
DEFINE var_a = &1;
DECLARE
var_b VARCHAR2(64) := var_a;
BEGIN
DBMS_OUTPUT.PUT_LINE(var_b);
END;
/
ただし、さまざまなエラーが発生するか、これらすべてに対してリテラル値 '&1' が表示されます。