Hi,
Ich habe folgendes SQL script das ich gerneverbessern würde.
Im Script werden im prinzip zuerst die Daten zu einem User gesucht basierend auf seiner Mail adresse,
anschließend auch witere daten aus anderen tabelen die mitder User ID verknüpft sind.
Folgendes würde ich gerne ändern:
1) Ich würde gerne für das Sub-Select in den abfragen gerne eine Variale utzen,
so das nicht immer (SELECT ID FROM SCHEMA_X.SITE_USER WHERE EMAIL ='&TOFIND'); schriebn muss, sondern es an einer stelle habe und überaöl so wie das '&TOFIND' nutzen kann.
ich habe es mit DEFINE versucht und auch mit anderen herangehensweißen, aber das skript schlägt dann immer fehl/verlangt manuelle eingaben.
2) In dem ersten Select habe ich eine LANGUAGE_ID. diese würde ich gerne mit dem konkreten Namen der language ersetzten der in einer anderen tabelle steht.
wie kann man das am elegantesten lösen?
Ich nutze eine Oracle Datenbank - will aber bei dem Script so generisch wie möglich bleiben.
Ich habe folgendes SQL script das ich gerneverbessern würde.
Im Script werden im prinzip zuerst die Daten zu einem User gesucht basierend auf seiner Mail adresse,
anschließend auch witere daten aus anderen tabelen die mitder User ID verknüpft sind.
Folgendes würde ich gerne ändern:
1) Ich würde gerne für das Sub-Select in den abfragen gerne eine Variale utzen,
so das nicht immer (SELECT ID FROM SCHEMA_X.SITE_USER WHERE EMAIL ='&TOFIND'); schriebn muss, sondern es an einer stelle habe und überaöl so wie das '&TOFIND' nutzen kann.
ich habe es mit DEFINE versucht und auch mit anderen herangehensweißen, aber das skript schlägt dann immer fehl/verlangt manuelle eingaben.
2) In dem ersten Select habe ich eine LANGUAGE_ID. diese würde ich gerne mit dem konkreten Namen der language ersetzten der in einer anderen tabelle steht.
wie kann man das am elegantesten lösen?
Ich nutze eine Oracle Datenbank - will aber bei dem Script so generisch wie möglich bleiben.
Code:
DEFINE TOFIND='tofind@example.com';
spool OUTPUTFILE.out
prompt StartSeacrhing by '&TOFIND'
SELECT
'ID;NAME;LAST_LOGIN;EMAIL_ADDRESS;FIRST_NAME;LAST_NAME;BLABLA;LANGUAGE_ID;'
FROM
DUAL;
SELECT
ID||';'||NAME||';'||LAST_LOGIN||';'||EMAIL||';'||FIRST_NAME||';'||LAST_NAME||';'||BLABLA||';'||LANGUAGE_ID||';'
FROM
SCHEMA_X.SITE_USER
WHERE
EMAIL ='&TOFIND';
prompt Feedback messages
prompt ID;SUBJECT;MESSAGE;TIMESTAMP;
SELECT
ID||';'||SUBJECT||';'||MESSAGE||';'||TIMESTAMP||';'
FROM
SCHEMA_X.SITE_FEEDBACK
WHERE
USER_ID = (SELECT ID FROM SCHEMA_X.SITE_USER WHERE EMAIL ='&TOFIND');
prompt Other Entries
prompt ID;TITLE;BLABLA;TIMESTAMP;
SELECT
ID||';'||TITLE||';'||BLABLA||';'||TIMESTAMP||';'
FROM
SCHEMA_X.SITE_ENTRY
WHERE
USER_ID = (SELECT ID FROM SCHEMA_X.SITE_USER WHERE EMAIL ='&TOFIND');
spool off;