Comment avez-vous passer un argument à un PL/SQL bloc dans un fichier sql appelé à l'aide de DÉMARRER dans sqlplus?

J'ai un script bash exécute plusieurs fichiers sql via sqlplus:

sqlplus $connectioninfo << end
start file1.sql
start file2.sql
start file3.sql $variable
quit
end

fichier3 a quelques PL/SQL:

BEGIN

  DBMS_OUTPUT.PUT_LINE(&1);

END;
/

Mais il se contente d'afficher le littéral "&1" au lieu de la valeur de $variable. J'ai aussi essayé le suivant dans fichier3:

DEFINE var_a = &1;
BEGIN

  DBMS_OUTPUT.PUT_LINE(var_a);

END;
/

et également les éléments suivants:

DECLARE
  var_b VARCHAR2(64) := &1;

BEGIN

  DBMS_OUTPUT.PUT_LINE(var_b);

END;
/

et enfin:

DEFINE var_a = &1;

DECLARE
  var_b VARCHAR2(64) := var_a;

BEGIN

  DBMS_OUTPUT.PUT_LINE(var_b);

END;
/

Cependant, j'obtiens des erreurs ou tout simplement la valeur littérale "&1' pour tous ces.

  • juste petite correction ... >> fin devrait être plutôt ... << fin
  • Merci. Seulement, il fixe.
InformationsquelleAutor xdhmoore | 2013-03-21