首页 > 解决方案 > SQLPlus 是否有没有静态字母数量的灵活数据类型

问题描述

如果我使用 varchar2 作为字符串数据类型,我必须设置字母的数量。如果这将是 varchar2(100) 似乎我有一个问题,即 SQLPlus 用较少的字母填充一个值,直到它达到 100。这个问题通过 spool 命令弹出,然后它会在输出文件中打印 100 个字母,即使该列的某些值的字母较少。当我在控制台上执行查询时,也会出现这种情况。所以我的问题是,是否有一种数据类型我不必设置静态数量的字母?普通 SQL 知道您不必设置它的数据类型 Text。SQLPlus 中是否有类似的数据类型?

这就是我用来创建输出的代码

SET PAGESIZE 50000
SET LINESIZE 540
SET FEEDBACK OFF
set echo off
set mark csv off
set sqlformat csv
set trimspool off
set heading on
set headsep on
set wrap off
SET COLSEP "|"



SET TERMOUT OFF
spool C:/Data/DHBW/PA1/Oracle/outputTable.log
select * from konten where rownum<=10 order by Konto;
spool off;

这就是输出 在此处输入图像描述 在“Firma”列中,它会打印一个很大的空白区域,因为后面的一些行会出现更长的值。

那就是创建表的查询:

SET TERMOUT OFF
create table konten(Konto number,Anrede varchar(5), Vorname varchar(20), Nachname varchar(30), Stadt varchar(38), Bundesland varchar(38),Firma varchar(120), TelNr varchar(30), Institut varchar(55), Eroeffnung varchar(15), IBAN varchar(12), Anfangssaldo varchar(18), Kontostand varchar(18));
desc konten;
trimspool on;
exit

这就是我用来将数据导入表“konten”的控制文件:

load data
infile 'C:/Data/DHBW/PA1/JavaCSV/kontenMiddle.csv'
into table konten
fields terminated by ';'
(Konto, Anrede, Vorname, Nachname, Stadt, Bundesland, Firma, TelNr, Institut, Eroeffnung, IBAN, Anfangssaldo, Kontostand)

这些是导入的 CSV 的前 10 行:

Index;Anrede;Vorname;Nachname;Stadt;Bundesland;Firma;Tel.-Nr.;Institut;Eroeffnung;IBAN;Anfangssaldo;Kontostand
1;  Frau;Herzlinde; Busch ; Meerbusch;Nordrhein-Westfalen;   Firma MAT ;    ;   VR-Bank;    22.11.1980; DE56126376; 6508.6; 957268.04   
2;  Frau;Leonille;  Schwab ;    Schwaebisch Gmuend;Baden-Wuerttemberg;   Baeckerei Raedlein ;   04323/26513493; DZ Privatbank;  21.12.1973; DE42747841; 1883.24;    263757.76   
3;  Frau;Snejana;   Baumann ;   Koblenz;Rheinland-Pfalz;     Metzgerei Kalinowicz ; 030/76672589;   VR-Bank;    13.08.2006; DE91771527; 7238.34;    775892.57   
4;  Herr;Klemens;   Zimmermann ;    Tuebingen, Universitaetsstadt;Baden-Wuerttemberg;    Gewerbegebiet Weiherweg ;  06731/42974286; Sparda-Bank;    03.06.2012; DE81371787; 3365.81;    355406.19   
5;  Herr;Eilef; Haase ; Luenen;Nordrhein-Westfalen;  Apotheke am Kreuz ;    ;   Sparda-Bank;    17.02.1990; DE12562130; 6403.39;    579210.5    
6;  Frau;Hadburg;   Loeffler ;  Bocholt;Nordrhein-Westfalen;     Kuechen und Baeder Zeyco ; 06592/5582092;  DZ Privatbank;  21.07.1978; DE73874811; 6113.86;    503603.39   
7;  Frau;Avsin; Gaertner ;  Darmstadt;Hessen;    DB Agentur&Reisebuero Hartwig Seger ;  07143/46168911; DZ Privatbank;  13.05.1986; DE33659772; 9584.49;    202764.71   
8;  k.A.;Richard;   Winter ;    Fuerth;Bayern;   Kraft ;    ;   VR-Bank;    05.11.2020; DE86352502; 8101.75;    861537.14   

第一行没有被导入,因为在创建表时已经给出了标题。

标签: sqloracletypes

解决方案


推荐阅读