Friday, April 29, 2011

What is the maximum length of a table name in Oracle?

What is the maximum length of a table name in Oracle? For bonus points, what is the maximum length of a column name?

From stackoverflow
  • In the 10g database I'm dealing with, I know table names are maxed at 30 characters. Couldn't tell you what the column name length is (but I know it's > 30).

    Justin Cave : Column names are limited to 30 characters as well, not > 30
    Harper Shelby : Ah, I see that (in Mark Brady's answer). I could've sworn I saw one longer, but obviously I was wrong.
  • I believe the maximum name size is 30 characters, because all table/index names must be stored in the data dictionary and that storage is only allocated for 30 characters

    EDIT-

    The same goes for the column name

    TStamper : why the downvote, for the correct answer?
    TStamper : Wow...lol..sorry been a member for a few months now and only gave one downvote and it was to spam
    TStamper : I never assumed you downvoted me,the comment was for all, I didnt comment on your answer, so I never suspected you. sorry you took it that way
  • Teach a man to fish

    Notice the data-type and size

    >describe all_tab_columns
    
    VIEW all_tab_columns
    
    Name                                      Null?    Type                        
     ----------------------------------------- -------- ----------------------------
     OWNER                                     NOT NULL VARCHAR2(30)                
     TABLE_NAME                                NOT NULL VARCHAR2(30)                
     COLUMN_NAME                               NOT NULL VARCHAR2(30)                
     DATA_TYPE                                          VARCHAR2(106)               
     DATA_TYPE_MOD                                      VARCHAR2(3)                 
     DATA_TYPE_OWNER                                    VARCHAR2(30)                
     DATA_LENGTH                               NOT NULL NUMBER                      
     DATA_PRECISION                                     NUMBER                      
     DATA_SCALE                                         NUMBER                      
     NULLABLE                                           VARCHAR2(1)                 
     COLUMN_ID                                          NUMBER                      
     DEFAULT_LENGTH                                     NUMBER                      
     DATA_DEFAULT                                       LONG                        
     NUM_DISTINCT                                       NUMBER                      
     LOW_VALUE                                          RAW(32)                     
     HIGH_VALUE                                         RAW(32)                     
     DENSITY                                            NUMBER                      
     NUM_NULLS                                          NUMBER                      
     NUM_BUCKETS                                        NUMBER                      
     LAST_ANALYZED                                      DATE                        
     SAMPLE_SIZE                                        NUMBER                      
     CHARACTER_SET_NAME                                 VARCHAR2(44)                
     CHAR_COL_DECL_LENGTH                               NUMBER                      
     GLOBAL_STATS                                       VARCHAR2(3)                 
     USER_STATS                                         VARCHAR2(3)                 
     AVG_COL_LEN                                        NUMBER                      
     CHAR_LENGTH                                        NUMBER                      
     CHAR_USED                                          VARCHAR2(1)                 
     V80_FMT_IMAGE                                      VARCHAR2(3)                 
     DATA_UPGRADED                                      VARCHAR2(3)                 
     HISTOGRAM                                          VARCHAR2(15)
    
  • The schema object naming rules may also be of some use:

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723

  • DESCRIBE all_tab_columns

    will show a TABLE_NAME VARCHAR2(30)

    Note VARCHAR2(30) means a 30 byte limitation, not a 30 character limitation, and therefore may be different if your database is configured/setup to use a multibyte character set.

    Mike

  • Right, but as long as you use ASCII characters even a multibyte character set would still give a limitation of exactly 30 characters... so unless you want to put hearts and smiling cats in you're DB names your fine...

    Maarten

    Ed Daniel : I can DO that? Cool! *shoots self*

0 comments:

Post a Comment