Я использую 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*Plus: выпуск 11.2.0.2.0
Извините, но SQL, которым вы поделились, и выходные скриншоты не имеют ничего общего 🤔 Я имею в виду, как вы можете вставить 4 столбца в таблицу с 3 столбцами и получить обратно 7 столбцов?
«Это напечатало таблицу в неупорядоченном формате. Надеюсь, вы понимаете, что я имею в виду». Я не знаю, что вы имеете в виду.
Я подумал, что было бы плохо загрузить все заявление
Я имею в виду, что объяснение проблемы достаточно понятно и не зависит от введенных данных, потому что до того, как я использовал COLUMN vehicle_id FORMAT A5
, все работало нормально
@Марк, при всем уважении, вы можете увидеть изображение. В любом случае спасибо за ваше время, ребята!
Все в порядке, я пропустил тег SQL * Plus.
Ваш столбец vehicle_id
является числовым, поэтому вам следует использовать числовую модель столбца, например 99999
, а не строковую модель, например A5
. Но столбец по-прежнему будет отображаться с использованием ширины заголовка столбца, поэтому вы также можете изменить это, например:
COLUMN vehicle_id FORMAT 99999 HEADING V_ID
Тем не менее, это все еще будет шесть символов, а не пять, потому что это позволяет использовать дополнительную цифру для возможного знака минус. Вы можете знать, что это значение никогда не будет отрицательным, но SQL*Plus этого не знает.
Поведение, которое вы видите, объясняется в документации:
Если модель числового формата не содержит элементов формата MI, S или PR, отрицательные возвращаемые значения автоматически содержат начальный отрицательный знак, а положительные значения автоматически содержат начальный пробел. ...
SQL*Plus форматирует данные NUMBER с выравниванием по правому краю. Ширина столбца ЧИСЛО равна ширине заголовка или ширине ФОРМАТ плюс один пробел для знака, в зависимости от того, что больше.
...
Если значение не помещается в столбце, SQL*Plus отображает символы решетки (#) вместо числа.
Работал как шарм! Спасибо, я сейчас изучаю и не мог понять, что не так. Еще раз спасибо за ваше время!
Это оракул или sql-сервер? в ваших тегах они оба.