SQL Script Parameter übergeben

Peregrine

Peregrine

Honorarkonsul
Folgender Fall: ich möchte via crontab ein SQL Statement durchführen (die Rede ist hier von einem Unix-Server und einer Oracle-DB). Hierzu habe ich einen "Shell-Script-Wrapper" und die eigentlichen SQL-Statements, die vom Wrapper über die Shell aufgerufen werden.

So, nun hier meine Frage: wie gebe ich dem SQL-Statement nun über den Wrapper Parameter mit. Im konkreten Fall vgl. Beispiel unten möchte ich z.B. "./script.sh TabelleV ServiceX" aufrufen (lassen), damit mir alles aus TabelleV gelöscht wird, was als Servicenamen ServiceX trägt.

Wrapper "script.sh"
Code:
#! /bin/sh

ORACLE_HOME=/oracle/ADM/920_64; export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin; export PATH

sqlplus /nolog <<EOF
connect foo/bar@server
@/oracle/ADM/admin/ADM/scripts/script.sql
EOF

Statements "script.sql"
Code:
set heading off
set echo on
#set feedback off
set feedback on
set lines 140
set pages 0
spool /oracle/ADM/admin/ADM/scripts/script.log


<------ Statement, z.B. delete from <tabelle> where servicename=<sname>;  ------>


commit;
spool off
exit

Any help apreciated :)
 
Schon Neuigkeiten? Problem ist immer noch aktuell...
 
Also ich weiß ob dir das weiter hilft aber man könnte, wenn man zum Beispiel ein SELECT SQL script schreiben möchte, folgendes machen.

SQL Script

SELECT table_name FROM tabs;

Man ruft dann das Script so auf:

@\Pfad\zu\Script\Scriptname.sql table_name tabs;

Glaub aber nicht das dir was bringt.

Ob man ein ganzes SQL-Statement übergeben kann weiß ich leider auch nicht.

mfg Daywalker2004
 
Zuletzt bearbeitet:
Keine Ahnung von Oracle, aber vielleicht kannst du einfach das SQL-Statement im Shellscript zusammenbasteln.
Dann kannst du dort mittels $1, $2 auf die übergebenen Parameter zugreifen.
So in dieser Art:
Code:
#! /bin/sh

ORACLE_HOME=/oracle/ADM/920_64; export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin; export PATH

TABLE=$1;COND=$2
ORACLESQLSCRIPTCONTENT="<allgemeine Settings>
SELECT * from $TABLE where foo=$COND;"

sqlplus /nolog <<EOF
connect foo/bar@server
$ORACLESQLSCRIPTCONTENT
EOF

Gruß
XL
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Debian squeeze, Webmin, Samba Freigaben

Zurück
Oben