Variablen definieren und verwenden

Prosit Neujahr erstmal!

Folgende Problem in einer Oracle DB:
Nach längerer Inaktivität können user nicht mehr in eine Anwendung einsteigen - leider auch der Admin nicht.
Ich kann zwar nun jedes Feld in der DB updaten manuell aber das will ich vereinfachen mit einem (PL/)SQL Script bei dem ich nur noch 1x den User ändern muss - nur gelingt es mir nicht den user zu definieren und ihn dann zu verwenden im zuge von updates wo auch gleichzeitig der user als bedingung abgefragt werden muss.

Was ich Brauche im script:

  1. Zu ändernden USER Definieren.
  2. Datum+Zeitstempel definieren (für die Anwendungslogik)

3a) Es soll in einer Tabelle password_history alle einträge mit password ‚xyz‘ gelöscht werden.
3b) Es soll ein neuer eintrag angelegt werden mit
USER = aus der Variablen,
anlegedatum = sysdate,
password = ‚XYZ‘ - das ist ein standard passwort,
ablaufdatum = sysdate + 180

  1. In einer Tabelle alle_user soll beim betroffenen USER
    der status auf ‚aktiv‘ gesetzt werden und
    das lastlogin_datum = sysdate

Eigentlich ein einfaches Problem aber gibt es auch eine einfache Lösung ohne Tabellen anlegen oder cursor mit sql oder plsql?

Danke, lg Roland

Hi,

PROMPT User angeben ;
DEFINE VUSER = &1;
PROMPT Datumstempel angeben ;
DEFINE VDATE = &2;

delete from password_history where password = ‚xyz‘;

insert into password_history (USER, anlegedatum , password, ablaufdatum)
values ( ‚&&VUSER‘, to_date(&&VDATE,‚DD.MM.YYYY_HH24:MI:SS‘),‚xyz‘,sysdate +180 );

update table2 set status =‚ACTIVE‘, lastlogin_datum = sysdate where username =’&&VUSER’;

UNDEFINE VUSER
UNDEFINE VDATE

Sowas ???

Grüße

Chris

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Jaaa, genauso etwas hab ich gebraucht!-)

Funktioniert jetzt wie geschmiert, ganz toll und was ich an Stunden versch* hab damit vorher mit dem mini problemchen…

Danke Chris!

Hi,

PROMPT User angeben ;
DEFINE VUSER = &1;
PROMPT Datumstempel angeben ;
DEFINE VDATE = &2;

delete from password_history where password = ‚xyz‘;

insert into password_history (USER, anlegedatum , password,
ablaufdatum)
values ( ‚&&VUSER‘,
to_date(&&VDATE,‚DD.MM.YYYY_HH24:MI:SS‘),‚xyz‘,sysdate +180 );

update table2 set status =‚ACTIVE‘, lastlogin_datum = sysdate
where username =’&&VUSER’;

UNDEFINE VUSER
UNDEFINE VDATE

Sowas ???

Grüße

Chris