স্ক্যালপ্লাস আউটপুটকে কীভাবে এক লাইনে প্রদর্শিত হয়?


47

আমার কাছে 100 টি কলাম সহ একটি টেবিল রয়েছে। SQL Plusআউটপুট মোড়ানো মধ্যে ডেটা নির্বাচন করার সময়, এটি পড়া কঠিন করে তোলে।

আমি বরং যা চাই তা হ'ল একটি অনুভূমিক স্ক্রোল বারটি প্রদর্শিত হবে বা কোনওভাবে আউটপুটটি প্রেরণ করবে less

আমি এসকিউএলপ্লাসে নিম্নলিখিত বিবৃতিগুলি চালিত করি -

SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;

তারপরে bashআমি দৌড়ে -

কম আউটপুট.টেক্সট

আউটপুট এখনও আবৃত এবং অপঠনযোগ্য প্রদর্শিত হবে।


1
আমি স্বতন্ত্রভাবে প্রত্যেকের জন্য কলামের আকার নির্ধারণ করার পরিবর্তে কলামগুলি স্বয়ংক্রিয়ভাবে প্রসারিত করতে চাই।
ক্ষিতাইজ শর্মা

উত্তর:


58

স্ক্লোপ্লাসকে লাইনগুলি মোড় না দেওয়ার জন্য জোর করা যথেষ্ট নয়। আপনি স্পুল ফাইলটি লাইন মোড়ানোর জন্য না দেখতে দেখতে ব্যবহার করার জন্য দর্শকের কাছে এটিও বলা দরকার। যদি আপনার দর্শকের বিকল্প হয় lessতবে -Sআপনাকে https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less অনুযায়ী ব্যবহার করতে হবে । ইউনিক্স / লিনাক্সে আপনি head -1 output.txtকোনও ফাইলের প্রথম লাইন পেতে ব্যবহার করতে পারেন এবং এটি প্রত্যাশার মতো কিনা তা পরীক্ষা করতে পারেন বা od -c output.txt|head আপনার আউটপুট ফাইলে লাইন বিরতি আসলে কোথায় রয়েছে তা দেখতে আপনি ব্যবহার করতে পারেন।

যদি আপনি দীর্ঘ কলামগুলি প্রদর্শন করেন এবং তাদের মানগুলিতে লাইন বিরতি থাকে তবে এই কলাম মানগুলির জন্য একাধিক লাইন মুদ্রণ করা হবে এবং আপনি এটি স্ক্যালপ্লাস সেটিংসের মাধ্যমে ওভারলুল করতে পারবেন না।


নিম্নলিখিত স্কেলপ্লাস কমান্ডগুলি সম্ভবত দরকারী:

  • SET LINESIZE linesizeলাইনের দৈর্ঘ্য অধিকাংশ ক্ষেত্রে এর সর্বাধিক মান linesize32767. আপনি আপনার সর্বোচ্চ মান খুঁজে বের করতে পারেন যদি আপনি একটি অবৈধ মান LINESIZE সেট এবং পরীক্ষা ত্রুটি বার্তা তাই SET LINESIZE 0দিতে পারে SP2-0267: linesize option 0 out of range (1 through 32767) (1)
  • SET TRIMSPOOL ON অন্যথায় স্পুলফিলের প্রতিটি লাইন লাইনজাইজ না হওয়া পর্যন্ত ফাঁকা জায়গায় পূর্ণ হয় reached
  • SET TRIMOUT ON অন্যথায় আউটপুটে প্রতিটি লাইন ফাঁকা দিয়ে পূর্ণ হবে যতক্ষণ না লাইনসাইজ পৌঁছে যায়।
  • SET WRAP OFFলাইনটি দীর্ঘতর হলে লাইনচিহ্নটি কেটে দেয়। লাইনসাইজ যথেষ্ট পরিমাণে বড় হলে এটি হওয়া উচিত নয়।
  • SET TERMOUT OFFফলাফল আউটপুট মুদ্রণ দমন। লাইনগুলি এখনও স্পুল ফাইলটিতে লেখা রয়েছে। এটি একটি বিবৃতি বহিঃপ্রকাশ সময় ত্বরান্বিত করতে পারে।
  • SET PAGESIZE 0 অসীম পেজসাইজ সেট করতে এবং শিরোনাম, শিরোনাম এবং এড়াতে।
  • SETআউটপুট (NUMWIDTH, NUMFORMAT, লং, COLSEP) এবং কর্মক্ষমতা সম্পর্কিত অন্যান্য কিছু প্যারামিটার রয়েছে (ARRAYSIZE, LONGCHUNKSIZE)।

COLUMNস্বতন্ত্র কলামগুলি বিন্যাস করতে আপনাকে কমান্ডটি ব্যবহার করতে হবে।

উদাহরণস্বরূপ আউটপুটে column name format a30কলামটি nameসর্বোচ্চ 30 অক্ষরের দৈর্ঘ্যে ফর্ম্যাট করবে ।

আপনি যদি প্রদর্শন আকারটি স্থির না করে থাকেন তবে এটি একটি সারিতে কলামগুলির প্রকৃত মানের আকারের সমান হওয়া উচিত তবে আমি একমাত্র জানতে পারি যে আপনি পছন্দসই ফলাফলটি পেতে এবং আপনার ব্যবহারের জন্য আপনার বক্তব্যের নির্বাচনের ধারাটি পরিবর্তন করেছেন স্ট্রিং কনটেনটেশন অপারেটর ||, যেমন

select emp_id||' '||first_name||' '||last_name
from emp;

সমস্ত ভেরিয়েবলের একটি সম্পূর্ণ বিবরণ এসকিউএল * প্লাস ব্যবহারকারীর গাইড এবং রেফারেন্সে পাওয়া যাবে

আপনি যদি কিছু সেটিংস পুনরায় ব্যবহার করতে চান (বা COLUMN সংজ্ঞা) আপনি সেগুলি একটি ফাইলে সংরক্ষণ করতে পারেন এবং যখন আপনার আবার প্রয়োজন হয় তখন এই ফাইলটি চালাতে পারেন। এমনকি যদি আপনি স্ক্যালপ্লাস শুরু করেন তবে আপনি এই ফাইলটি স্বয়ংক্রিয়ভাবে চালাতে পারেন।

(1) "কীভাবে লাইনাইজেড সর্বাধিক মান (এটি সিস্টেম নির্ভর) এটি আবিষ্কার করতে হবে (ডক আইডি 1547262.1)"


LONGCHUNKSIZEশুধু কর্মক্ষমতা সম্পর্কে নয়, এটা অবাঞ্ছিত লাইন মোড়ানো এড়াতে প্রয়োজন হতে প্রদর্শিত হবে ছাড়াও করার LINESIZE, শুধু থেকে অব্যবহারযোগ্য আউটপুট সঙ্গে এই পরীক্ষানিরীক্ষাDBMS_METADATA.get_ddl()
ড্যানিয়েল প্রকৃতপক্ষে

2
সুন্দর উত্তর ...
ypercubeᵀᴹ

2
@ ইপারসিলিকিউবে যা বলেছে :)
টম ভি

আপনি ব্যবহার করা উচিত SET PAGESIZE 1000পরিবর্তে 0অন্যথায় কলাম হেডার যখন `জারি নির্বাচন করুন" আদেশ মুদ্রণ করা হবে না। রেফারেন্স
পিয়ের সি

@ পিয়ারিক সে কারণেই আমি একটি সীমাহীন পৃষ্ঠার আকার সেট করতে এবং শিরোনাম, শিরোনাম এবং এড়াতে "সেট পৃষ্ঠা 0 লিখলাম"।
चमत्कार 173


2

আপনি এই মত সেট করতে পারেন

SET WRAP OFF

SET PAGESIZE 0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.