Hallo,
ich möchte einen SELECT mit Substr() ausführen (wird als AS selektiert) und anschliessend diesen Datensatz über Cursor updaten.
Anforderungen:
- Select liefert mehrere Datensätze
- Select soll in einer Virtuellen Tabelle zwischengespeichert werden
- Aus dieser virtuellen Tabelle möchte ich direkt den Update durchführen
- Beim Update soll ein Datenbankfeld mit dem neuen As-Feld überschrieben werden, dass vorher mit substr() zusammengebaut wurde
Ich hoffe das ganze ist nicht zu wirr formuliert :-)
Folgenden Beispielcode habe ich hierfür gefunden.
DECLARE
dummy_var emp.empno%TYPE;
CURSOR c_emp IS SELECT empno FROM emp
<WHERE clause>
FOR UPDATE OF empno;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO dummy_var;
EXIT WHEN c_emp%NOTFOUND;
-- Do some processing on dummy_var
UPDATE emp SET empno=dummy_var
WHERE CURRENT OF c_emp;
COMMIT;
END LOOP;
ich möchte einen SELECT mit Substr() ausführen (wird als AS selektiert) und anschliessend diesen Datensatz über Cursor updaten.
Anforderungen:
- Select liefert mehrere Datensätze
- Select soll in einer Virtuellen Tabelle zwischengespeichert werden
- Aus dieser virtuellen Tabelle möchte ich direkt den Update durchführen
- Beim Update soll ein Datenbankfeld mit dem neuen As-Feld überschrieben werden, dass vorher mit substr() zusammengebaut wurde
Ich hoffe das ganze ist nicht zu wirr formuliert :-)
Folgenden Beispielcode habe ich hierfür gefunden.
DECLARE
dummy_var emp.empno%TYPE;
CURSOR c_emp IS SELECT empno FROM emp
<WHERE clause>
FOR UPDATE OF empno;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO dummy_var;
EXIT WHEN c_emp%NOTFOUND;
-- Do some processing on dummy_var
UPDATE emp SET empno=dummy_var
WHERE CURRENT OF c_emp;
COMMIT;
END LOOP;
Comment