- - PR -
変数宣言時に、%TYPEで参照した属性の桁数を取得したい(PL/SQL)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-01-15 23:44
お世話になっております。
wk_a IN USER.USERID%TYPE; ↑USERIDの属性がVARCHAR2(5)だったとして、 変数wk_aから最大桁数(この場合5)を取得する方法はあるでしょうか? wk_aの中身が'a01'でも'abc01'でも、5を取得できるようにしたいです。 イメージとしては、 LENGTH(USER.USERID%TYPE) のようなものです。 ご存じの方がいましたら教えてください。 wk_a := SUBSTR( wk_bb, 1, [wk_aの最大桁数] ); ↑ wk_bbの桁数が不定なので、SUBSTRで加工する [ メッセージ編集済み 編集者: みゅう 編集日時 2009-01-16 01:41 ] | ||||
|
投稿日時: 2009-01-16 08:43
こんな感じで何とかなりませんか?
| ||||
|
投稿日時: 2009-01-16 09:27
その型は全ての型が想定されますか?(DATE、NUMBER、BLOB等)
それとも VARCHAR2 の場合のみですか? | ||||
|
投稿日時: 2009-01-17 00:09
お世話になります。
型はVARCHAR2のみ、桁数は1〜12くらいです。 | ||||
|
投稿日時: 2009-01-17 00:29
てな感じで出来ませんか? | ||||
|
投稿日時: 2009-01-19 12:09
こんな方法もありますよ。
SELECT DATA_LENGTH FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'USER' AND COLUMN_NAME = 'USERID' DATA_LENGTHはNUMBER型で取得できたはず。 | ||||
|
投稿日時: 2009-01-19 12:26
KOXさん
「カラム名から」ではなく「変数から」ではないでしょうか? カラム名は分かっているけどデータ長がわからない状態、 というレベルなのか カラム名すらわかっておらず変数がただあるだけの状態、 のレベルなのかが不明なので強くは言えませんが・・・。 | ||||
|
投稿日時: 2009-01-24 01:02
変数からでもUSER_TAB_COLUMNSテーブルからでも、どちらでも構いません。
参考にさせていただきます。 ありがとうございました。 |
1