ওরাকল প্রশাসকগণ গাইড নিম্নলিখিত বলেছেন:
একটি বিদ্যমান কলাম সংজ্ঞা সংশোধন করতে বিকল্প টেবিল ... মোডিফাই বিবৃতি ব্যবহার করুন। আপনি কলামের ডেটা টাইপ, ডিফল্ট মান, কলাম সীমাবদ্ধতা, কলাম অভিব্যক্তি (ভার্চুয়াল কলামগুলির জন্য) এবং কলাম এনক্রিপশন সংশোধন করতে পারেন।
সমস্ত বিদ্যমান ডেটা যদি নতুন দৈর্ঘ্যকে সন্তুষ্ট করে তবে আপনি বিদ্যমান কলামটির দৈর্ঘ্য বাড়িয়ে দিতে পারেন বা এটি হ্রাস করতে পারেন। আপনি বাইট শব্দার্থবিজ্ঞান থেকে CHAR শব্দার্থবিজ্ঞান বা বিপরীতে একটি কলাম পরিবর্তন করতে পারেন। খালি খালি CHAR কলামটির দৈর্ঘ্য হ্রাস করতে আপনাকে অবশ্যই BLANK_TRIMMING = TRUE সূচনা পরামিতিটি সেট করতে হবে।
আপনি যদি CHAR ডেটা টাইপের কলামের দৈর্ঘ্য বাড়ানোর জন্য কোনও টেবিলটি সংশোধন করছেন তবে বুঝতে পারেন যে এটি একটি সময় সাশ্রয়ী ক্রিয়াকলাপ হতে পারে এবং যথেষ্ট পরিমাণে অতিরিক্ত স্টোরেজ প্রয়োজন হতে পারে, বিশেষত যদি টেবিলটিতে অনেকগুলি সারি থাকে। এটি কারণ নতুন কলাম দৈর্ঘ্য সন্তুষ্ট করতে প্রতিটি সারিতে CHAR মান ফাঁকা প্যাডযুক্ত থাকতে হবে।
ওরাকল SQL এর ভাষা রেফারেন্স নিম্নলিখিত সহ আরো অনেক কিছু বিস্তারিত রয়েছে:
আপনি যদি কোনও কলামের ডেটা ধরণের পরিবর্তন করতে পারেন যদি কলামের সমস্ত সারিতে শূন্য থাকে। যাইহোক, আপনি যদি কোনও উপাদানযুক্ত দৃশ্যের ধারক টেবিলের কোনও কলামের ডেটা ধরণের পরিবর্তন করেন, তবে ওরাকল ডেটাবেসটি সম্পর্কিত বস্তুগত দর্শনটিকে অবৈধ করে দেয়।
আপনি সবসময় কোনও অক্ষরের আকার বা কাঁচা কলাম বা একটি সংখ্যাসূচক কলামের যথার্থতা বাড়াতে পারেন, সমস্ত সারিতে নাল থাকে কিনা contain আপনি যতক্ষণ না পরিবর্তনকে ডেটাফাই করার প্রয়োজন হয় না ততক্ষণ আপনি কোনও কলামের ডেটা ধরণের আকার হ্রাস করতে পারেন database
আপনি স্থানীয় সময় জোনের সাথে একটি তারিখ কলামটি টাইমস্ট্যাম্প বা টাইমস্ট্যাম্পে সংশোধন করতে পারেন। আপনি স্থানীয় সময়সীমার সাথে যে কোনও টাইমস্ট্যাম্প একটি তারিখ কলামে পরিবর্তন করতে পারেন।
যদি টেবিলটি খালি থাকে তবে আপনি অগ্রণী ক্ষেত্র বা একটি ডেটটাইম বা অন্তর্বর্তী কলামের ভগ্নাংশের দ্বিতীয় মান বাড়াতে বা হ্রাস করতে পারেন। যদি টেবিলটি খালি না থাকে, তবে আপনি কেবল অগ্রণী ক্ষেত্র বা একটি ডেটটাইম বা ব্যবধান কলামের ভগ্নাংশ দ্বিতীয় করতে পারেন।
CHAR এবং VARCHAR2 কলামের জন্য, আপনি CHAR নির্দিষ্ট করে দৈর্ঘ্য শব্দার্থবিজ্ঞান পরিবর্তন করতে পারেন (মূলত অক্ষরে বর্ণিত একটি কলামের জন্য বাইট শব্দার্থ নির্দেশক) বিদ্যমান কলামগুলির দৈর্ঘ্য শব্দার্থবিজ্ঞান শিখতে, ALL_, USER_, বা DBA_TAB_COLUMNS ডেটা অভিধানের ভিউয়ের CHAR_USED কলামটি জিজ্ঞাসা করুন।
উপরের ডকুমেন্টেশনে অতিরিক্ত তথ্য এবং বিধিনিষেধ রয়েছে। এখানে একটি সংখ্যার কলামের যথার্থতা হ্রাস করার এবং ভার্চর 2 এর দৈর্ঘ্য হ্রাস করার চেষ্টা করার একটি প্রদর্শন রয়েছে। আপনি অন্যান্য পরিবর্তনগুলি চেষ্টা করে দেখতে পারেন যাতে কী হবে তা আপনি জানতে পারবেন।
--Setup.
DROP TABLE FOO;
CREATE TABLE FOO (BAR Number, BAR2 VARCHAR2(300));
INSERT INTO FOO (SELECT Level, RPAD(to_char(Level),10*Level,to_char(Level))
FROM DUAL CONNECT BY Level <=20);
COMMIT;
SELECT * FROM FOO;
--Reduce Number to Number(10).
ALTER TABLE FOO MODIFY (BAR NUMBER (10));
--Reduce Varchar2(300) to Varchar2(100) (data would be truncated).
ALTER TABLE FOO MODIFY (BAR2 VARCHAR2(100));
--Reduce Varchar2(300) to Varchar2(200) (no data would be truncated).
ALTER TABLE FOO MODIFY (BAR2 VARCHAR2(200));
পরিবর্তিত বিবৃতিগুলির নিম্নলিখিত আউটপুট থাকে:
ALTER TABLE FOO MODIFY (BAR NUMBER (10))
Error report:
SQL Error: ORA-01440: column to be modified must be empty to decrease precision or scale
01440. 00000 - "column to be modified must be empty to decrease precision or scale"
ALTER TABLE FOO MODIFY (BAR2 VARCHAR2(100))
Error report:
SQL Error: ORA-01441: cannot decrease column length because some value is too big
01441. 00000 - "cannot decrease column length because some value is too big"
table FOO altered.
একটি নতুন কলাম তৈরি করে নির্ভুলতা হ্রাস করুন।
ALTER TABLE FOO ADD (BAR3 NUMBER(10));
UPDATE FOO SET Bar3 = Bar;
ALTER TABLE FOO DROP COLUMN BAR;
ALTER TABLE FOO RENAME COLUMN BAR3 TO BAR;