質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

解決済

3回答

7998閲覧

OracleのIdentity Columnで0埋めで採番したい

guzzle

総合スコア43

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2016/08/24 11:01

###前提・実現したいこと
Oracleでテーブルインサート時にIDを自動でシーケンスに採番したいのですが、
この時IDを0埋めで採番したいです。
例)

Id | Name 0001 | sato 0002 | suzuki 0003 | tanaka

Oracleの12cからIdentity Columnという機能が追加され、
インサート時に自動採番できる事は分かったのですが、0埋めの方法が分かりません。
MySQLだと以下のような形で実現できたのですが、Oracleを触るのは初めてよく分かりませんでした。
id INT(12) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT

Oracleに詳しい方ご教授をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Id は Number型になりますでしょうか。
そうなるとゼロ埋めという表現は意味不明です。
Varchr2 ならば、シーケンスで採番して to_charで
ゼロ埋めするのかなあ。
ただ、シーケンスを使ってて跳ぶ(連番の途中が抜ける)
ことがあったので、なんか別の方法をとった方がいいかも?
--- 追加 ---

ざっと調べてみましたが、Identity Column ってのは
暗黙的にシーケンスを用意するってことらしい。
なので、やってることは上記と変わらないっぽい。

投稿2016/08/24 11:14

編集2016/08/24 11:19
takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guzzle

2016/08/30 11:44

返信遅くなりました。 Identity Columnはnumber型のカラムしか定義できないみたいで、シーケンス振ってから0埋めでinsertするようにしました。 CREATE TABLEのddl定義だけでうまいことやってくれたらと思ってましたが。。。
guest

0

id INT(12) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT

Oracleでは、ZEROFILLオプションがありません。
001は数字であり、数値(Number)ではないので、他の方が回答しているとおり char/varchar2 を指定するといいと思います。

投稿2016/08/25 04:14

koutajero

総合スコア116

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

sqlplus で実行するなら、
SQL> COLUMN A FORMAT 000000
SQL> SELECT 123 AS A FROM DUAL ;

A

000123

1 row selected.

それ以外では
SYS> SELECT TO_CHAR(123, 'FM00000') AS A FROM DUAL ;

A

00123

1 row selected.

投稿2016/08/25 00:58

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問