Hallo,
ich versuche mit case in einer Fkt. abzufragen, ob eine Spalte vorhanden ist.
Das versuch ich wie folgt:
cursor c_columnName is
select column_name
FROM USER_TAB_COLS
WHERE TABLE_NAME = upper(slotname)
AND column_name LIKE 'REC_%';
aber ich weiß jetzt nicht genau, wie ich diesen curser abfragen soll, ich versuchs so..
else-- Hier mit case prüfen??
case (c_columnName)
when c_columnName <> 'REC_ATBMAN_WID ' then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_ATBMAN_WID'||' VARCHAR2(252)';
when c_columnName <> REC_ATBSRC_WID then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_ATBSRC_WID'||' VARCHAR2(252)';
when c_columnName <>REC_CREATED_BY then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_CREATED_BY'||' VARCHAR2(252)';
when c_columnName <>REC_CREATED_DT then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_CREATED_DT'||' VARCHAR2(252)';
when c_columnName <>REC_UPDATED_BY then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_UPDATED_BY'||' VARCHAR2(252)';
when c_columnName <>REC_UPDATED_DT then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_UPDATED_DT'||' VARCHAR2(252)';
else
return 0;
end case;
hat jemand einen Tip für mich?
ich versuche mit case in einer Fkt. abzufragen, ob eine Spalte vorhanden ist.
Das versuch ich wie folgt:
cursor c_columnName is
select column_name
FROM USER_TAB_COLS
WHERE TABLE_NAME = upper(slotname)
AND column_name LIKE 'REC_%';
aber ich weiß jetzt nicht genau, wie ich diesen curser abfragen soll, ich versuchs so..
else-- Hier mit case prüfen??
case (c_columnName)
when c_columnName <> 'REC_ATBMAN_WID ' then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_ATBMAN_WID'||' VARCHAR2(252)';
when c_columnName <> REC_ATBSRC_WID then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_ATBSRC_WID'||' VARCHAR2(252)';
when c_columnName <>REC_CREATED_BY then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_CREATED_BY'||' VARCHAR2(252)';
when c_columnName <>REC_CREATED_DT then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_CREATED_DT'||' VARCHAR2(252)';
when c_columnName <>REC_UPDATED_BY then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_UPDATED_BY'||' VARCHAR2(252)';
when c_columnName <>REC_UPDATED_DT then
EXECUTE IMMEDIATE 'ALTER TABLE '||Upper(slotname)||' ADD '||'REC_UPDATED_DT'||' VARCHAR2(252)';
else
return 0;
end case;
hat jemand einen Tip für mich?