Можно ли убрать кучу повторяющей информации в SQL*Plus консоли?

Возможно ли, когда выводишь информацию в консоли убрать повторяющиеся имена колонок и черточек (--) после каждого вывода информации столбца?

Или лучше уже использовать SQL Developer для большого количества строк?

Пример, что мне выдает при выводе информации о пользователе (инф. которую я попытался получить в консоли взял в такие вот звездочки для Вашего лучшего просмотра (****)):

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
         **98**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
**Amber**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
**Rose**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
**[email protected]**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
**650.507.9822                                       23-MAY-16         25**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------
**Shipping Clerk**

EMPLOYEE_ID
-----------
FIRST_NAME
--------------------------------------------------------------------------------
LAST_NAME
--------------------------------------------------------------------------------
EMAIL
--------------------------------------------------------------------------------
PHONE                                              HIRE_DATE MANAGER_ID
-------------------------------------------------- --------- ----------
JOB_TITLE
--------------------------------------------------------------------------------

UPD вывода:

SQL> set lines 999 pages 100
SQL> select * from employees fetch next 10 rows only;

EMPLOYEE_ID FIRST_NAME

                                            LAST_NAME

                                                                            EMAIL

                                                                                                            PHONE
                                               HIRE_DATE MANAGER_ID
----------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- --------- ----------
JOB_TITLE
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         98 Amber

                                            Rose

                                                                            [email protected]

                                                                                                            650.507.9822                                       23-MAY-16         25
Shipping Clerk

         99 Bella

                                            Stone

                                                                            [email protected]

                                                                                                            650.507.9833                                       21-JUN-16         25
Shipping Clerk

        100 Thea

                                            Hawkins

                                                                            [email protected]

                                                                                                            650.5

Ответы (2 шт):

Автор решения: 0xdb

Можно. Так сразу после подключения:

SQL> select * from  hr.employees fetch first 10 rows only;

EMPLOYEE_ID FIRST_NAME           LAST_NAME
----------- -------------------- -------------------------
EMAIL                     PHONE_NUMBER         HIRE_DATE JOB_ID         SALARY
------------------------- -------------------- --------- ---------- ----------
COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
-------------- ---------- -------------
        100 Steven               King
SKING                     515.123.4567         17-JUN-03 AD_PRES         24000
                                     90

[... и так ещё 9 строк]

С указанием допустимой длины строки и страницы будет несколько лучше:

SQL> set lines 999 pages 100
SQL> /

EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL                     PHONE_NUMBER         HIRE_DATE JOB_ID         SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
----------- -------------------- ------------------------- ------------------------- -------------------- --------- ---------- ---------- -------------- ---------- -------------
        100 Steven               King                      SKING                     515.123.4567         17-JUN-03 AD_PRES         24000                                      90
        101 Neena                Kochhar                   NKOCHHAR                  515.123.4568         21-SEP-05 AD_VP           17000                       100            90
        102 Lex                  De Haan                   LDEHAAN                   515.123.4569         13-JAN-01 AD_VP           17000                       100            90
[... ещё 7 строк]

10 rows selected.

Разумеется, можно указывать имена нужных колонок вместо select *.


SQL*Plus не подсчитывает динамически фактическую длину значений символьных колонок, а берёт их макс. длину из метаданных. Никакой опции, чтобы ограничить ширину отображения для всех символных столбцов нет.

Макс. длина символьных столбцов в таблице из вопроса - 255 символов. Чтобы задать приемлимую ширину их отображения, то надо выполнить команду COL[UMN] для всех столбцов в листе запроса. Например:

SQL> create table emp as
    select cast ('name' as varchar2 (255)) name, cast ('memo' as varchar2 (255)) memo  
    from dual
/
SQL> select * from emp
/
NAME                                                                                                                                                                                                            MEMO
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
name                                                                                                                                                                                                            memo

SQL> col name for a8
SQL> col memo for a8
SQL> /

NAME     MEMO
-------- --------
name     memo
→ Ссылка
Автор решения: 0xdb

Или лучше уже использовать SQL Developer для большого количества строк?

SQL*Plus подходит для администрирования, запуска скриптов, несложных однострочных запросов. Но для разработки он не совсем подходит, т.к. набрать в нём сложный запрос для того, чтобы выполнить его один-два раза, довольно непросто. На смену ему Oracle готовит SQLcl, который поставляется в коробке, $ORACLE_HOME/sqldeveloper/sqldeveloper/README.md:

Oracle SQL Developer Command Line (SQLcl) is a free command line interface for Oracle Database.
It allows you to interactively or batch execute SQL and PL/SQL.
SQLcl provides in-line editing, statement completion, and command recall for a feature-rich experience, all while also supporting your previously written SQL*Plus scripts.

Простым языком, SQLcl это SQL Developer без GUI, который полностью совместим с SQL*Plus.

В нём проблемы с отображением длинных символьных столбцов не будет:

The ansiconsole option formats and resizes data according to the column widths, for easier readability.

$ sql iam/iam@server/pdb1

SQLcl: Release 19.4 Production on Sun Aug 02 15:40:55 2020

SQL> desc emp
Name Null? Typ
---- ----- --------------
NAME       VARCHAR2(2000)
MEMO       VARCHAR2(2000)

SQL> select * from emp;

NAME
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MEMO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
name                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
memo                                                                                                                                                                                                                                                                                                                                                                                                                      

SQL> set sqlformat ansiconsole
SQL> / 
/
   NAME    MEMO
_______ _______
name    memo

Или визуально:

введите сюда описание изображения

→ Ссылка