![]() |
Datenbank: Oracle • Version: 10 • Zugriff über: egal
[erledigt] Wie verwendet man VEXTVAL und CURRVAL richtig
Hallo zusammen,
folgende Abfrage wir von Oracle nicht akzeptiert:
Code:
Die Fehlermeldung lautet: ORA-02287: sequence number not allowed here.
select '-- HUSC'
,'insert into globalmask (globalmaskkey,countrykey,ipsitekey,usetype,casetypekey,propertytypekey)' ,'values('||nextkey.nextval||','||countrykey||',20230628,4,1,1);' ,chr(13)||chr(10) ,'insert defaultcasenamenamekey (GLOBALMASKKEY,NAMETYPEKEY,NAMEKEY,DEFAULTKEY)' ,' values ('||nextkey.currval||',102,10414425);' ,chr(13)||chr(10)||'-- HUHR' ,'insert into globalmask (globalmaskkey,countrykey,ipsitekey,usetype,casetypekey,propertytypekey)' ,'values('||nextkey.nextval||','||countrykey||',37934789,4,1,1);' ,chr(13)||chr(10) ,'insert defaultcasenamenamekey (GLOBALMASKKEY,NAMETYPEKEY,NAMEKEY,DEFAULTKEY)' ,' values ('||nextkey.currval||',102,35745741);' ,chr(13)||chr(10)||'-- HUBW' ,'insert into globalmask (globalmaskkey,countrykey,ipsitekey,usetype,casetypekey,propertytypekey)' ,'values('||nextkey.nextval||','||countrykey||',37934829,4,1,1);' ,chr(13)||chr(10) ,'insert defaultcasenamenamekey (GLOBALMASKKEY,NAMETYPEKEY,NAMEKEY,DEFAULTKEY)' ,' values ('||nextkey.currval||',102,38076588);' ---<< Fehler from tablecountry where countrycode<>'WO' order by countrykey (Das Currval ggf nicht den Wert liefert den ich erwarte ist mir klar.Mir geht's nur um die Fehlermeldung) Wißt ihr woran Oracle sich verschluckt? Gruß K-H |
AW: Wie verwendet man VEXTVAL und CURRVAL richtig
Leider keine Ahnung. Vllt. ist der Sequenzer empfindlich? Oder kann in einem Select nur einmal angesprochen werden?
Kann man die entsprechenden Stellen vllt. ersetzen durch einen Subselect ala: (Select nextkey.nextval from Dual) |
AW: Wie verwendet man VEXTVAL und CURRVAL richtig
Lt. Oracle Beschreibung tritt der Fehler in Subselects, Where.., Order.. usw. auf, aber eben nicht im Select. Das mit dem Mehrfachaufruf könnte sein wäre aber nicht so positiv.
(und vor allem nicht dokumentiert, bzw. ich hätte es übersehen) Gruß K-H Ohh ich hatte das Order By Übersehen *schäm* hat sich erledigt Nachtrag: Es sieht so aus als ob NEXTVAL pro SELECT nur einen Wert liefert. Das CURRVAL wäre also Überflüssig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz