Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

既に列にNot Nullが指定されているかどうかの判断について

945496Jun 24 2012 — edited Jun 25 2012
お世話になります。

件名についてですが、Oracle10gとOracle11gであるテーブルの列でNot Nullの制約が
列に追加されていない場合、Not Null制約を付けたいと思っています。

制約自体は、「ALTER TABLE my_table MODIFY ( char_col NOT NULL ) 」で付ける事は可能ですが、
既に列にNot Nullの制約がついていた場合は、エラーになってしまいますので、
存在チェックを行いたいと思っています。

select * from USER_CONSTRAINTS
Where TABLE_NAME = 'TABLE_NAME1';
 
上記のSQLでSEARCH_CONDITION を確認すると
「"列名" IS NOT NULL」と表示されます。
しかし、型がLONGの為、

and search_condition ='"列名" IS NOT NULL' 
上記をWhere条件につけると、
ORA-0092:データ型が一致しません。:Numberが予想されますが、LONGです

というエラーが発生してしまいます。

search_conditionをTO_CHARで変換してみましたが、
やはりOra-0092(Charが予想されますが、LONGです)が発生しました。

Not Null制約の判定をする場合、どのようにすべきかお分かりの方は教えていただけますでしょうか?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 23 2012
Added on Jun 24 2012
3 comments
6,209 views