<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle 序列 &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/oracle-%E5%BA%8F%E5%88%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Tue, 25 Apr 2023 14:09:20 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>Oracle 序列 &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>修改 Oracle Sequence</title>
		<link>https://noter.tw/11178/%e4%bf%ae%e6%94%b9-oracle-sequence/</link>
					<comments>https://noter.tw/11178/%e4%bf%ae%e6%94%b9-oracle-sequence/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Sun, 16 Apr 2023 09:35:07 +0000</pubDate>
				<category><![CDATA[資料庫]]></category>
		<category><![CDATA[Oracle Sequence]]></category>
		<category><![CDATA[Oracle last_number]]></category>
		<category><![CDATA[修改 Oracle 序列]]></category>
		<category><![CDATA[modify oracle sequence last number]]></category>
		<category><![CDATA[.nextval]]></category>
		<category><![CDATA[last_number]]></category>
		<category><![CDATA[Oracle 序列]]></category>
		<category><![CDATA[Oracle INCREMENT]]></category>
		<category><![CDATA[如何修改 Sequence]]></category>
		<category><![CDATA[修改 Sequence 的方法]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=11178</guid>

					<description><![CDATA[<p>不同於 MySQL 非常方便的 Auto Increment，Oracle 中必須自己建立及管理 Sequence 來記錄目前 Table 的序號，這篇文章記錄如何透過指令修改 Oracle Sequence。</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/11178/%e4%bf%ae%e6%94%b9-oracle-sequence/" data-wpel-link="internal">修改 Oracle Sequence</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>不同於 MySQL 非常方便的 Auto Increment，Oracle 中必須自己建立及管理 Sequence 來記錄目前 Table 的序號，這篇文章記錄如何透過指令修改 Oracle Sequence。</p>



<span id="more-11178"></span>



<p>小蛙需要修改一個既有的 Sequence，之前差一些些的話，可以偷懶直接透過 .nextval 取得下一個 sequence 達到調整的效果</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT XXX_SEQ.nextval FROM DUAL;</pre>



<p>但這次要調整三萬多個序號就沒辦法這樣做了，透過 <a href="https://noter.tw/2714/%e5%ae%98%e6%96%b9-client-oracle-sql-developer-%e5%ae%89%e8%a3%9d%e6%95%99%e5%ad%b8/" data-wpel-link="internal">Oracle SQL Developer</a> 修改的話又跳出嚇人的警告畫面，因此還是乖乖採取保守方式來調整。</p>



<h2 class="para wp-block-heading" id="修改-increment">修改 INCREMENT</h2>



<p>Oracle 的 Sequence 運作會有一個遞增量 (increment)，小蛙遇到的狀況需要一次調整 30000，以下指令可以先將該 sequence 的遞增量修改成 30000，也就是每一次觸發 nextval 就會增加 30000。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ALTER SEQUENCE XXX_SEQ INCREMENT BY 30000;</pre>



<h2 class="para wp-block-heading" id="取得下一個號碼">取得下一個號碼</h2>



<p>透過 .nextval 取得下一個號碼，可以發現假設原本序號是 30，遞增量是 1，那 .nextval 就會是 31；我們把遞增量改成 30000 之後，原本序號是 31，取得 .nextval 時就會得到 30031。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT XXX_SEQ.nextval FROM DUAL;</pre>



<h2 class="para wp-block-heading" id="恢復-increment">恢復 INCREMENT</h2>



<p>最後把遞增量改回 1 就完成了。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ALTER SEQUENCE XXX_SEQ INCREMENT BY 1;</pre>



<p>可以透過以下語法看到目前 Sequence 的 last_number 是多少</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT last_number FROM user_sequences WHERE sequence_name = 'XXX_SEQ';</pre>



<p>參考資料：<a href="https://dotblogs.com.tw/falassion/2016/07/13/093912" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">修改Oracle Sequence的last number<span class="wpel-icon wpel-image wpel-icon-6"></span></a>、<a data-wpel-link="exclude" href="https://stackoverflow.com/questions/6099108/best-way-to-reset-an-oracle-sequence-to-the-next-value-in-an-existing-column" target="_blank" rel="noreferrer noopener follow" class="wpel-icon-right">Best way to reset an Oracle sequence to the next value in an existing column?<span class="wpel-icon wpel-image wpel-icon-6"></span></a></p>


<h2 class="para">與 Oracle 相關的文章</h2><ul><li><span style="font-size: 1em;"><a href="https://noter.tw/12015/oracle-%e5%88%86%e7%b5%84%e7%b7%a8%e8%99%9f%e8%88%87%e5%85%a8%e6%8e%92%e5%ba%8f%e7%b7%a8%e8%99%9f-row_number-over-partition-by/" data-wpel-link="internal">Oracle, MySQL 分組編號與全排序編號 row_number, over, partition by</a></span></li><li><span style="font-size: 1em;"><a href="https://noter.tw/9109/oracle-sqlplus-export-results-to-file/" data-wpel-link="internal">使用 Oracle sqlplus 將查詢結果匯出到檔案</a></span></li><li><span style="font-size: 1em;"><a href="https://noter.tw/8540/database/" data-wpel-link="internal">資料庫問題彙整</a></span></li><li><span style="font-size: 1em;"><a href="https://noter.tw/2711/oracle-%e5%8c%af%e5%85%a5%e5%8c%af%e5%87%ba-excel-%e9%80%8f%e9%81%8e-sql-developer/" data-wpel-link="internal">Oracle 匯入/匯出 Excel (透過 SQL Developer)</a></span></li><li><span style="font-size: 1em;"><a href="https://noter.tw/2714/%e5%ae%98%e6%96%b9-client-oracle-sql-developer-%e5%ae%89%e8%a3%9d%e6%95%99%e5%ad%b8/" data-wpel-link="internal">官方 Client &#8211; Oracle SQL Developer 安裝教學</a></span></li><li><span style="font-size: 1em;"><a href="https://noter.tw/2371/oracle-sqlplus-import-sql-file/" data-wpel-link="internal">Oracle 使用 sqlplus 匯入 SQL 檔案</a></span></li></ul><p>這篇文章 <a rel="nofollow" href="https://noter.tw/11178/%e4%bf%ae%e6%94%b9-oracle-sequence/" data-wpel-link="internal">修改 Oracle Sequence</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/11178/%e4%bf%ae%e6%94%b9-oracle-sequence/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
