Avatar billede amoelle Nybegynder
11. marts 2009 - 13:44 Der er 2 kommentarer og
1 løsning

kan man have optionelle parametre i kald af plsql script

Hej,
jeg kunne godt tænke mig at lave et pl/sql script, der tillader optionelle parametre så man kan kalde det både som:
  sqlplus /nolog @amcreate.sql p1 p2 >amtest.txt
og som
  sqlplus /nolog @amcreate.sql  >amtest.txt


alle mine eksperimenter ender desværre med at man bliver promp'tet for værdier, hvis man ikke medsender parametre.
Hvis jeg så trykker enter 2 gange, opfattes værdierne selvfølgelig som null, - men det skal kunne køre uden bruger interaktion...

Kan man undertrykke promptet ?

<start amcreate.sql>
set serveroutput on
connect system/manager@service
declare
  par1 varchar2(56);
  par2 varchar2(56);
begin
  par1 := '&1';
  par2 := '&2';

  dbms_output.put_line('first paramter='||par1);
  dbms_output.put_line('second paramter='||par2);

  if (par1 is not null and par2 is not null)
  then
    dbms_output.put_line('non empty params');
  else
    dbms_output.put_line('empty params');
  end if;
end;
/
exit
/
<end amcreate.sql>
Avatar billede stig3 Mester
15. marts 2009 - 21:39 #1
I diverse programmeringssprog kan man lave to funktioner med samme navn, men med forskelligt antal argumenter.

Jeg ved ikke om man kan det i PL/SQL, men mon ikke ?

....Den med færrest antal argumenter kan så kalde den anden med '' som det tomme argument.

Bare en ide.
Avatar billede pgroen Nybegynder
17. marts 2009 - 10:53 #2
SQL*Plus har det ikke så godt med default parametre (som du allerede har opdaget ;-)

En workaround ville være, at lave et script (.bat eller .sh osv...)
der håndterer parametrene, og sender default værdier for p1 og p2 videre til SQL*Plus.
Avatar billede amoelle Nybegynder
02. august 2009 - 13:15 #3
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester