2012-04-25 21 views
9

में एक स्तंभ के डेटा प्रकार बदल रहा है मैं निम्न तालिकाओरेकल

CREATE TABLE PLACE(
    POSTCODE VARCHAR(10) PRIMARY KEY, 
    STREET_NAME VARCHAR(10), 
    COUNTY VARCHAR(10), 
    CITY VARCHAR(10)); 

मैं name, county और cityvarchar(10) से varchar(20) को बदलना चाहते हैं बनाया। मैं उसको कैसे करू?

उत्तर

21
ALTER TABLE place 
    MODIFY(street_name VARCHAR2(20), 
      county  VARCHAR2(20), 
      city  VARCHAR2(20)) 

ध्यान दें कि मैं भी VARCHAR2 को VARCHAR से डेटा प्रकार बदल कर रहा हूँ और अधिक परंपरागत किया जाना है। वर्तमान में एसक्यूएल मानक से मेल खाने के लिए भविष्य में VARCHAR का व्यवहार बदल सकता है, दोनों के बीच कोई कार्यात्मक अंतर नहीं है।

+0

तो VARCHAR2 – user1232622

+0

@ user1232622 उपयोग करने के लिए एक और अधिक बेहतर विकल्प हो जाएगा - 'VARCHAR2' निश्चित रूप से, और अधिक परंपरागत होगा हाँ। यदि आप (स्वीकार्य रूप से छोटे) जोखिम से बचना चाहते हैं कि आपके 'वचरर' कॉलम का व्यवहार ओरेकल के भविष्य के संस्करण में आपके आवेदन को तोड़ने के तरीके में बदल जाएगा, तो आप 'VARCHAR2' का उपयोग करना चाहते हैं। –

+0

मदद – user1232622

-2

यदि आपके पास तालिका में पहले से मौजूद कुछ रिकॉर्ड्स मौजूद हैं तो आप तालिका के डेटा प्रकार को संशोधित नहीं कर सकते हैं।

आपको पहले स्तंभ (आप डेटा प्रकार संशोधित करना चाहते हैं) की तालिका रिकॉर्ड खाली और फिर नीचे दिए आदेश का उपयोग करने के लिए है:

alter table place 
modify (street_name varchar2(20), country varchar2(20), city varchar2(20)); 

निश्चित रूप से यह काम होगा!

+2

ओरेकल आपको मौजूदा तालिका में मौजूदा कॉलम पर डेटा प्रकारों को संशोधित करने की अनुमति देगा, जहां पहले से डेटा है, जब तक कि मौजूदा डेटा नए डेटा के साथ संगत हो प्रकार। इस मामले में, प्रश्नकर्ता कॉलम को व्यापक बनाना चाहता है; निश्चित रूप से, डेटा को स्थानांतरित किए बिना इसकी अनुमति है। – MikeB

1

आप नीचे दिए गए स्तंभ उपयोग का एकमात्र प्रकार बदलना चाहते हैं: आप नीचे दिए गए कार्य कर सकता अपनी मेज डेटा है

ALTER TABLE <table_name> MODIFY (<column_name> <new_Type>) 
in your case:  
ALTER TABLE place MODIFY (street_name VARCHAR2(20), 
          county  VARCHAR2(20), 
          city  VARCHAR2(20)) 

हैं:

  1. तालिका करने के लिए नए प्रकार के साथ एक स्तंभ जोड़ें।
  2. पुराने कॉलम से नए कॉलम में डेटा कॉपी करें।
  3. पुराना कॉलम ड्रॉप करें।
  4. पुराने कॉलम को पुराने में पुनर्नामित करें।

के लिए नीचे दिए गए एक स्तंभ उपयोग का नाम बदलने:

ALTER TABLE <table_name> rename column <column_name> to <new_column_name> 
-1
Alter table placemodify(street name varchar2(20),city varchar2(20)