Почему я получаю это «#########» в качестве вывода в полях столбца?

Я использую ORACLE SQL * PLUS XE 11g. Я сделал таблицу транспортных средств с:

CREATE TABLE Vehicles (
    vehicle_id NUMBER PRIMARY KEY,
    v_type VARCHAR2(50) NOT NULL,
    v_price DECIMAL(10,2) NOT NULL
);

И добавил данные с:

INSERT ALL 
    INTO Vehicles VALUES (1, 'Car', 'Limousine', 67113480)
    INTO Vehicles VALUES (2, 'Car', 'Toyota Camry', 19000000)

Примечание. Исходный код состоит из множества столбцов.

Теперь, чтобы распечатать данные в этой таблице на терминале, я использовал

SELECT * FROM Vehicles;

Это напечатало таблицу в неупорядоченном формате. Надеюсь, вы понимаете, что я имею в виду. Что-то вроде этого:

Почему я получаю это «#########» в качестве вывода в полях столбца?

Чтобы решить эту проблему, я использовал COLUMN vehicle_id FORMAT A5 (чтобы уменьшить размер столбца при отображении). Эта конкретная команда привела к тому, что вывод для столбца, который я отформатировал, получился таким.

Почему я получаю это «#########» в качестве вывода в полях столбца?

Я попытался исправить эту проблему, снова используя этот запрос COLUMN vehicle_id FORMAT A50(Чтобы увеличить размер столбца при отображении), но ничего не меняется, и у меня все тот же вывод. Кто-нибудь знает, как мне это решить?

Это оракул или sql-сервер? в ваших тегах они оба.

VBoka 22.12.2022 15:40

SQL*Plus: выпуск 11.2.0.2.0

NeOx 22.12.2022 15:42

Извините, но SQL, которым вы поделились, и выходные скриншоты не имеют ничего общего 🤔 Я имею в виду, как вы можете вставить 4 столбца в таблицу с 3 столбцами и получить обратно 7 столбцов?

Álvaro González 22.12.2022 15:47

«Это напечатало таблицу в неупорядоченном формате. Надеюсь, вы понимаете, что я имею в виду». Я не знаю, что вы имеете в виду.

Marc 22.12.2022 15:48

Я подумал, что было бы плохо загрузить все заявление

NeOx 22.12.2022 15:49

Я имею в виду, что объяснение проблемы достаточно понятно и не зависит от введенных данных, потому что до того, как я использовал COLUMN vehicle_id FORMAT A5, все работало нормально

NeOx 22.12.2022 15:50

@Марк, при всем уважении, вы можете увидеть изображение. В любом случае спасибо за ваше время, ребята!

NeOx 22.12.2022 15:55

Все в порядке, я пропустил тег SQL * Plus.

Álvaro González 22.12.2022 15:57
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
8
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш столбец vehicle_id является числовым, поэтому вам следует использовать числовую модель столбца, например 99999, а не строковую модель, например A5. Но столбец по-прежнему будет отображаться с использованием ширины заголовка столбца, поэтому вы также можете изменить это, например:

COLUMN vehicle_id FORMAT 99999 HEADING V_ID

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

Поведение, которое вы видите, объясняется в документации:

Если модель числового формата не содержит элементов формата MI, S или PR, отрицательные возвращаемые значения автоматически содержат начальный отрицательный знак, а положительные значения автоматически содержат начальный пробел. ...
SQL*Plus форматирует данные NUMBER с выравниванием по правому краю. Ширина столбца ЧИСЛО равна ширине заголовка или ширине ФОРМАТ плюс один пробел для знака, в зависимости от того, что больше.
...
Если значение не помещается в столбце, SQL*Plus отображает символы решетки (#) вместо числа.

Работал как шарм! Спасибо, я сейчас изучаю и не мог понять, что не так. Еще раз спасибо за ваше время!

NeOx 22.12.2022 15:53

Другие вопросы по теме