2012-06-25 34 views
10

可能性の重複:
Why are Oracle table/column/index names limited to 30 characters?ストアドプロシージャ名に最大長があるのはなぜですか?

Oracleのストアドプロシージャを書くとき、私は特に、わかりやすい名前を選んだ、と私は名前を知らされたスクリプトを更新しようとしたときには長すぎました。

37 15 PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long 

なぜ格納されたproc名に制限がありますか?これはOracleに固有のものなのでしょうか、それとも他のdbシステムではこれが共通ですか? Oracleのみでduplicate

+0

SQL Serverでは、 'sysname'(システムベーステーブルで使用されているデータ型)の最大長である128文字です –

+0

すぐにわかったように、Oracleでは30よりもずっと優れています。 – JWiley

+1

オラクルは30文字が十分以上と考えられていた時代から来ているからです!結局のところ、8文字のファイル名では、30はトンです! –

答えて

1

その実際に30文字の


申し訳ありません。

DBに作成されるすべてのオブジェクトの名前がシステムテーブルに格納され、すべての列に固定長があるため、すべての言語/ DBの長さには制限があります。

パフォーマンスのために、DBの場合は名前を短くします。

+8

うーんどのようにこの答えは*なぜ、このような制限は限界がありません! * –

+0

これはMySQLのためにもポップアップしています - MySQL 5.7(そしてたぶん他のバージョンのものもあります)では64-マニュアルです - https://dev.mysql.com/doc/refman/5.7/en/identifiers .html –

+1

@ConradFrix私はすべてのdbオブジェクト情報がシステムテーブル自体に格納されていることを述べました。テーブルには列があり、いくつかの定義済みのサイズがあるため、格納するコンテンツの長さを制限するように制限されています。 –

関連する問題