ওরাকল ব্যবহার করে নির্বাচন করুন


134

আমি ওরাকল ব্যবহার করে একটি নির্বাচন INTO করার চেষ্টা করছি। আমার জিজ্ঞাসাটি হ'ল:

SELECT * INTO new_table FROM old_table;

তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

SQL Error: ORA-00905: missing keyword
00905. 00000 -  "missing keyword"

কোন ধারণা কি ভুল?


উপরের স্ট্যান্ডার্ড আচরণটি এমনভাবে হওয়া উচিত যা আমি মূলত ভেবেছিলাম: তবে ওরাকল এটিকে differentোকানোতে এসকিউএল ওরাকল ডক্সের নিজস্ব উপভাষায় একেবারেই আলাদাভাবে প্রয়োগ করেছেন ... নির্বাচন করুন


3
select intoএকটি নতুন টেবিল তৈরি করা মানটির অংশ নয় । এসকিউএল স্ট্যান্ডার্ডটি কোনও নির্বাচনের উপর ভিত্তি করে একটি সারণী তৈরি করতে হয় create table .. as select ...। এসকিউএল স্ট্যান্ডার্ডটিতে SELECT INTOপ্রোগ্রামিং ভাষায় একটি কলামের মানটি ভেরিয়েবলে পড়তে সংজ্ঞায়িত করা হয়
a_horse_with_no_name

উত্তর:


282

যদি NEW_TABLE ইতিমধ্যে বিদ্যমান থাকে তবে ...

insert into new_table 
select * from old_table
/

আপনি যদি ওল্ডপ্যাবিলিএল রেকর্ডের উপর ভিত্তি করে NEW_TABLE তৈরি করতে চান ...

create table new_table as 
select * from old_table
/

যদি উদ্দেশ্যটি একটি নতুন তবে খালি টেবিল তৈরি করা হয় তবে এমন শর্ত সহ এমন একটি শুল্কের ধারাটি ব্যবহার করুন যা কখনই সত্য হতে পারে না:

create table new_table as 
select * from old_table
where 1 = 2
/

মনে রাখবেন যে টেবিল তৈরি করুন ... যেমন নির্বাচন উত্স টেবিলের সমান প্রক্ষেপণ সহ কেবল একটি টেবিল তৈরি করে। নতুন টেবিলের কোনও সীমাবদ্ধতা, ট্রিগার বা সূচি নেই যা মূল সারণীতে থাকতে পারে। তাদের এখনও ম্যানুয়ালি যোগ করতে হবে (যদি তাদের প্রয়োজন হয়)।


18
+1 @ রবার্ট: প্লাস, আপনি যদি কেবল ওল্ড_ টেবিলের স্কিমা অনুলিপি করতে চান তবে একটি নেতিবাচক যেখানে ক্লজ যেমন ব্যবহার করুন: যেমন পুরনো_ টেবিলটি বেছে নিন * 1_2 থেকে new_table তৈরি করুন।
KMån

31

select intoক্ষেত্রের মানগুলিতে ভেরিয়েবল সেট করতে pl / sql এ ব্যবহৃত হয়। পরিবর্তে, ব্যবহার করুন

create table new_table as select * from old_table

আমি যদিও নির্বাচন করুন মানক অংশ ছিল। ওরাকল কি এখানে অদ্ভুত কিছু করেছিলেন বা এটি কখনও স্ট্যান্ডার্ডের অংশ ছিল না?
রবার্ট গোল্ড

3
select intopl / sQL এর অংশ is এটি সঞ্চিত প্রক্রিয়া রচনার জন্য একটি ভাষা এবং স্কয়ার স্ট্যান্ডার্ডের সাথে কোনও সরাসরি সম্পর্ক নেই। এবং হ্যাঁ, ওরাকল এমন অনেকগুলি জিনিস তৈরি করেছিলেন যা কখনও স্ট্যান্ডার্ডের অংশ ছিল না =)
রোরিক

2
@RobertGould: না, SELECT INTO হয় না আদর্শ SQL। মানটি কেবলমাত্র সংজ্ঞা দেয়create table .. as select ..
a_horse_with_no_name

নির্বাচন করুন প্রমিত এসকিউএল এর একটি অংশ দেখুন w3schools.com/sql/sql_select_into.asp স্ট্যান্ডার্ড এসকিউএল ওরাকলের অন্যান্য অনেক অংশের মতো নিজস্ব কাজ করে does
গ্রাহাম হ্যানসন

2
@ গ্রাহামহানসন যে ডাব্লু 3 স্কুলস টিউটোরিয়াল সাইটের লিঙ্ক বলে মনে হচ্ছে, এটি কোনও এএনএসআই মান নথির নয়।
উইলিয়াম রবার্টসন

3

ব্যবহার করুন:

create table new_table_name 
as
select column_name,[more columns] from Existed_table;

উদাহরণ:

create table dept
as
select empno, ename from emp;

যদি টেবিলটি ইতিমধ্যে বিদ্যমান থাকে:

insert into new_tablename select columns_list from Existed_table;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.