{"id":124,"date":"2018-10-23T22:52:48","date_gmt":"2018-10-23T22:52:48","guid":{"rendered":"http:\/\/devblog.cssec.de\/?p=124"},"modified":"2019-02-08T23:08:11","modified_gmt":"2019-02-08T23:08:11","slug":"sequenz-reset-in-oracle","status":"publish","type":"post","link":"https:\/\/www.cssec.de\/blog\/2018\/10\/23\/sequenz-reset-in-oracle\/","title":{"rendered":"Sequenz reset in Oracle"},"content":{"rendered":"<p>Speziell in Testsystemen kommt es \u00f6fter mal vor, dass Sequenzen irgendwann volllaufen und Oracle mit einem ORA-08004 abbricht.<br \/>\nWenn es nackte Umgebungen sind, kann man aber relativ einfach die Sequenzen resetten, seit Oracle 11g gibt es folgende M\u00f6glichkeit, eine Sequenz zu resetten:<\/p>\n<pre lang=\"plsql\">ALTER\u00a0SEQUENCE\u00a0sequenzname\u00a0restart\u00a0start\u00a0with\u00a01<\/pre>\n<p>um die Sequenz \u201csequenzname\u201d wieder von 1 zu starten.<br \/>\nMit Hilfe einer PL\/SQL-Routine kann man dann entsprechend ein Reset aller Sequences durchf\u00fchren:<\/p>\n<pre lang=\"plsql\">declare\r\n\u00a0\u00a0\u00a0\u00a0Cursor\u00a0v_cur\u00a0is\u00a0select\u00a0sequence_name\u00a0from\u00a0user_sequences;\r\nbegin\r\n\u00a0\u00a0\u00a0\u00a0for\u00a0v_rec\u00a0in\u00a0v_cur\u00a0loop\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0execute\u00a0immediate\u00a0'ALTER\u00a0SEQUENCE\u00a0'||v_rec.sequence_name||'\u00a0RESTART\u00a0START\u00a0WITH\u00a01';\r\n\u00a0\u00a0\u00a0\u00a0end\u00a0loop;\r\nend;\r\n\/\r\n<\/pre>\n<p>Easy oder?<\/p>\n<p>Benennt man die Sequenzen nach einem bestimmten Muster oder pflegt Meta-Daten zur Beziehung zwischen Sequenzen und Tabellen-ID-Spalten l\u00e4sst sich dann auch leicht die maximale ID ermitteln und die Sequenz entsprechend auf den max+1-Wert setzen.<br \/>\nDazu aber in meinem n\u00e4chsten Post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Speziell in Testsystemen kommt es \u00f6fter mal vor, dass Sequenzen irgendwann volllaufen und Oracle mit einem ORA-08004 abbricht. Wenn es nackte Umgebungen sind, kann man aber relativ einfach die Sequenzen resetten, seit Oracle 11g gibt es folgende M\u00f6glichkeit, eine Sequenz zu resetten: ALTER\u00a0SEQUENCE\u00a0sequenzname\u00a0restart\u00a0start\u00a0with\u00a01 um die Sequenz \u201csequenzname\u201d wieder von 1 zu starten. Mit Hilfe einer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":265,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,8],"tags":[],"_links":{"self":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/124"}],"collection":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":3,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":127,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions\/127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media\/265"}],"wp:attachment":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media?parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/categories?post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/tags?post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}