あなたの質問は意味がありません。varcharのNEXTVALはどうなりますか?
varchar列に数値を格納したい場合はできますが、格納しないでください。数値を数値列に保持するのが常に最善です。
のストリームを生成したい場合A, B, C ... Z, AA, AB ... AZ, AAA
は、通常のシーケンスを取り、それを基数26(または基数36 1,2 ...9, A, B ... Z, 10, 11 ... 1A
)に変換する関数を作成できます。しかし、それは明確な利益がない何かのための多くの努力です。
2009/00000001, 2009/00000002
コード制御テーブルと呼ばれるものを使用して実行できる、などのより洗練されたシリーズが必要な場合。これは、最後に割り当てられた値を保持する手作りのテーブルです。ここでも、次の値を生成するためにいくつかの特注コードが必要になります。このアプローチにはいくつかの重大な制限があります。特に、挿入をシリアル化することです。コードはテーブルに対してロックを発行する必要があるため、最初のユーザーがコミットを発行するまで、2番目のユーザーはCUSTOMERにレコードを挿入できません(またはロールバック)。
編集
DBMS_RANDOMが機能しないと言う理由がわかりません。それは明らかにします:
SQL> select dbms_random.string('U', 5)
2 from dual
3 /
DBMS_RANDOM.STRING('U',5)
--------------------------------------------------------
IROGT
SQL>