পিএসকিএল-এর জন্য বিকল্প আউটপুট ফর্ম্যাট


314

আমি উবুন্টুতে PostgreSQL 8.4 ব্যবহার করছি। আমি কলাম সহ একটি টেবিল আছে c1মাধ্যমে cN। কলামগুলি যথেষ্ট প্রশস্ত যে সমস্ত কলামগুলি নির্বাচন করা একাধিকবার মোড়ানোর জন্য ক্যোয়ারির ফলাফলগুলির একটি সারি সৃষ্টি করে। ফলস্বরূপ, আউটপুট পড়া কঠিন।

যখন ক্যোয়ারির ফলাফলগুলি কেবল কয়েকটি সারি গঠন করে, আমি ক্যোয়ারির ফলাফলগুলি দেখতে পারতাম তবে এটি সুবিধাজনক হবে যেমন প্রতিটি সারির প্রতিটি কলাম একটি পৃথক লাইনে থাকে, যেমন

 c1: <value of row 1's c1>
 c2: <value of row 1's c1>
 ...
 cN: <value of row 1's cN>
 ---- some kind of delimiter ----
 c1: <value of row 2's c1>
 etc.

আমি এই অনুসন্ধানগুলি এমন একটি সার্ভারে চালাচ্ছি যেখানে আমি কোনও অতিরিক্ত সফ্টওয়্যার ইনস্টল না করা পছন্দ করি। এখানে কি এমন কোনও পিএসকিএল সেটিং আছে যা আমাকে এমন কিছু করতে দেয়?

উত্তর:


530

ডকুমেন্টেশনটি দেখার জন্য আমার আরও বেশি সময় ব্যয় করা দরকার। এই আদেশ:

\x on

আমি যা চেয়েছিলাম ঠিক তাই করবে will এখানে কিছু নমুনা আউটপুট:

select * from dda where u_id=24 and dda_is_deleted='f';
-[ RECORD 1 ]------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dda_id             | 1121
u_id               | 24
ab_id              | 10304
dda_type           | CHECKING
dda_status         | PENDING_VERIFICATION
dda_is_deleted     | f
dda_verify_op_id   | 44938
version            | 2
created            | 2012-03-06 21:37:50.585845
modified           | 2012-03-06 21:37:50.593425
c_id               | 
dda_nickname       | 
dda_account_name   | 
cu_id              | 1
abd_id             | 

8
আপনি \ pset ফর্ম্যাটটি মোড়ানো চেষ্টা করতে পারেন (অনুমোদিত বিন্যাসগুলি আনইলাইনড, সারিবদ্ধ, মোড়ানো, এইচটিএমএল, ল্যাটেক্স, ট্রফ-এমএস) রয়েছে। যদি ডিসপ্লেটি যথেষ্ট সংকীর্ণ হয় তবে এটি প্রতিটি কলামে মোড়ানো শব্দটি ব্যবহার করবে।
ব্রাইস

12
\xএকাই মানটিকে টগল করবে, আপনাকে তিনটি কীস্ট্রোক সাশ্রয় করবে! (আপনি যখন প্রশস্ত এবং সরু আউটপুটগুলির মধ্যে দ্রুত স্যুইচ করেন তখন দরকারী)।
মিসানফোর্ড

7
আপনি সমতূল্য খুঁজছেন তাহলে \Gমাইএসকিউএল থেকে পরিশেষে যোগ চেষ্টা \x\g\xক্যোয়ারী শেষে অথবা শর্টকাট সংজ্ঞায়িত ~/.psqlrcযোগ \set G '\\set QUIET 1\\x\\g\\x\\set QUIET 0'তারপর, শেষ ব্যবহার :G। (সেমিকোলনের অভাব নোট করুন)
সাওওমির লেনার্ট

5
\x onকমান্ড লাইনে কোনওভাবে " " বা সমতুল্য পাস করা কি সম্ভব ? যদি আমি কেবল সংরক্ষণ করতে পারি তবে এটি দুর্দান্ত হবে (উদাহরণস্বরূপ, ব্যাশ শেল ওরফে ব্যবহার করে) psql --somethingযাতে আমি সবসময় বিকল্পটি ডিফল্টরূপে চালু করি।
মেশিনহোস্ট

2
@ মাচাইনঘোস্ট ব্যবহার -P expanded=autoবা--pset expanded=auto
alecdwm

269

(নতুন) প্রসারিত অটো মোড: auto এক্স অটো

পোস্টগ্র্যাস্কিল 9.2 এর জন্য নতুন; পিএসকিউএল স্বয়ংক্রিয়ভাবে পর্দার প্রস্থে রেকর্ডগুলি ফিট করে। পূর্বে আপনি কেবল চালু বা বন্ধ মোড প্রসারিত করেছিলেন এবং প্রয়োজনীয় হিসাবে মোডগুলির মধ্যে স্যুইচ করতে হয়েছিল।

  • রেকর্ডটি যদি পর্দার প্রস্থে ফিট করতে পারে; পিএসকিএল সাধারণ বিন্যাস ব্যবহার করে।
  • রেকর্ডটি যদি স্ক্রিনের প্রস্থের সাথে ফিট না করতে পারে ; পিএসকিএল প্রসারিত মোড ব্যবহার করে।

এই ব্যবহারটি পেতে: \ এক্স অটো

Postgresql 9.5 পিএসকিউএল কমান্ডে ডকুমেন্টেশন।


প্রশস্ত পর্দা, স্বাভাবিক বিন্যাস:

 id | time  |       humanize_time             | value 
----+-------+---------------------------------+-------
  1 | 09:30 |  Early Morning - (9.30 am)      |   570
  2 | 11:30 |  Late Morning - (11.30 am)      |   690
  3 | 13:30 |  Early Afternoon - (1.30pm)     |   810
  4 | 15:30 |  Late Afternoon - (3.30 pm)     |   930
(4 rows)

সংকীর্ণ স্ক্রিন, প্রসারিত বিন্যাস:

-[ RECORD 1 ]-+---------------------------
id            | 1
time          | 09:30
humanize_time | Early Morning - (9.30 am)
value         | 570
-[ RECORD 2 ]-+---------------------------
id            | 2
time          | 11:30
humanize_time | Late Morning - (11.30 am)
value         | 690
-[ RECORD 3 ]-+---------------------------
id            | 3
time          | 13:30
humanize_time | Early Afternoon - (1.30pm)
value         | 810
-[ RECORD 4 ]-+---------------------------
id            | 4
time          | 15:30
humanize_time | Late Afternoon - (3.30 pm)
value         | 930

\ এক্স অটো দিয়ে কীভাবে পিএসকিএল শুরু করবেন?

আপনার বাড়ির ফোল্ডারে \x autoএটি যুক্ত করে .psqlrcএবং পিএসএইচএল পুনরায় চালু করে শুরুতে কমান্ডটি কনফিগার করুন । আরও তথ্যের জন্য পিএসকিএল ডকটিতে 'ফাইল' বিভাগের নীচে দেখুন

~ / .Psqlrc

\x auto

69

আপনার অনেক পছন্দ আছে, আপনি কীভাবে বিভ্রান্ত হতে পারেন :-)? প্রধান নিয়ন্ত্রণগুলি হ'ল:

# \pset format
# \H
# \x
# \pset pager off

প্রত্যেকের অপরের সাথে বিকল্প এবং মিথস্ক্রিয়া রয়েছে। সর্বাধিক স্বয়ংক্রিয় বিকল্পগুলি হ'ল:

# \x off;\pset format wrapped
# \x auto

নতুন "\ x অটো" বিকল্পটি কেবল "প্রয়োজনে" লাইন বাই লাইন প্রদর্শনে স্যুইচ করে।

-[ RECORD 1 ]---------------
id          | 6
description | This is a gallery of oilve oil brands.
authority   | I love olive oil, and wanted to create a place for
reviews and comments on various types.
-[ RECORD 2 ]---------------
id          | 19
description | XXX Test A 
authority   | Testing

পুরানো "\ pset ফর্ম্যাট মোড়ক" এর অনুরূপ এটি স্ক্রিনে ঝরঝরে ডেটা ফিট করার চেষ্টা করে তবে শিরোনামগুলি ফিট না হলে স্বাক্ষরবিহীন অবস্থায় ফিরে যায়। এখানে মোড়ানো একটি উদাহরণ:

 id |          description           |            authority            
----+--------------------------------+---------------------------------
  6 | This is a gallery of oilve     | I love olive oil, and wanted to
    ; oil brands.                    ;  create a place for reviews and
    ;                                ;  comments on various types.
 19 | Test Test A                    | Testing

\x autoসঙ্গে \pset pager offএকটি ভাল এক।
mitnk

হয় \x off; \pset format wrappedএবং \x autoএকসঙ্গে ব্যবহার করার উদ্দেশ্যে অথবা তারা পারস্পরিক একচেটিয়া?
দিমিত্রি

20

একটি আকর্ষণীয় বিষয় হ'ল আমরা ভাঁজ ছাড়াই টেবিলগুলি অনুভূমিকভাবে দেখতে পারি। আমরা PAGERপরিবেশের পরিবর্তনশীল ব্যবহার করতে পারি । পিএসকিএল এটি ব্যবহার করে। আপনি সেট করতে পারেন

export PAGER='/usr/bin/less -S'

বা ঠিক এটি less -Sযদি কমান্ড লাইনে ইতিমধ্যে কার্যকর হয়, যদি সঠিক অবস্থানের সাথে না থাকে। উন্মুক্ত রেখা দেখতে এস। আপনি যে কোনও কাস্টম ভিউয়ার বা এটির সাথে অন্য বিকল্পগুলিতে পাস করতে পারেন।

আমি পিএসকিএল অনুভূমিক প্রদর্শনে আরও লিখেছি


1
উত্তর সত্যিই ভাল। আমি এটির চেয়ে বেশি চিহ্নিত না করে অবাক হয়েছি। টার্মিনালে যে কেউ কাজ করছেন তার জন্য উপযুক্ত।
LUser

এটি অত্যন্ত সহায়ক ছিল
মার্লিন

এটি দরকারী, তবে আপনি ডানদিকে কীভাবে স্ক্রোল করবেন?
নিল ডি ওয়েট

18

pspg একটি সহজ সরঞ্জাম যা উন্নত টেবিল বিন্যাস, অনুভূমিক স্ক্রোলিং, অনুসন্ধান এবং আরও অনেকগুলি বৈশিষ্ট্য সরবরাহ করে।

git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install

তারপরে PAGERআপনার ভেরিয়েবলটি আপডেট করার বিষয়টি নিশ্চিত করুন~/.bashrc

export PAGER="pspg -s 6" 

যেখানে -sরঙিন স্কিম ( 1-14) stands আপনি যদি পিজডিজি সংগ্রহস্থলগুলি ব্যবহার করছেন তবে কেবল একটি প্যাকেজ ইনস্টল করুন ( দেবিয়ান -জাতীয় বিতরণে):

sudo apt install pspg

pspg উদাহরণ


7

এইচটিএমএল আউটপুট চালু / বন্ধ টোগল করে এমন \ এইচ, যাচাই করে নেওয়ার বিষয়টি নিশ্চিত করুন। কনসোলে পড়ার জন্য অগত্যা সহজ নয়, তবে কোনও ফাইলের মধ্যে ডাম্পিংয়ের জন্য আকর্ষণীয় (দেখুন) o) বা দেখার জন্য সম্পাদক / ব্রাউজার উইন্ডোতে আটকানো বিশেষত তুলনামূলকভাবে জটিল একাধিক সারি সহ r


1

আপনি কোয়েরি আউটপুট এইচটিএমএল টেবিল হিসাবে প্রদর্শন করতে জেনটি ব্যবহার করতে পারেন ।

  • প্রথমে নিম্নলিখিত কোড সহ বাশ স্ক্রিপ্ট প্রয়োগ করুন:

    বিড়াল> '/tmp/sql.op'; zenity --text-info --html --filename = '/ tmp / sql.op';

    এটি আমার পৃষ্ঠার মতো সংরক্ষণ করুন sh

  • তারপরে স্ক্রিপ্টটির পুরো পথটি মান হিসাবে সেট করে পরিবেশ পরিবর্তনশীল PAGER রফতানি করুন।

    উদাহরণস্বরূপ: - PAGER = '/ পথ / mypager.sh' রফতানি করুন

  • তারপরে পিএসকিএল প্রোগ্রামে লগইন করুন \ H কমান্ডটি কার্যকর করুন

  • এবং অবশেষে যে কোনও জিজ্ঞাসা কার্যকর করুন, টেবিলযুক্ত আউটপুটটি জেনটিটিতে এইচটিএমএল সারণী বিন্যাসে প্রদর্শিত হবে।

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