sql - 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
第一行没有被导入,因为在创建表时已经给出了标题。
解决方案
推荐阅读
- laravel - 如何限制 whereHas 只匹配 where 条件?
- java - 如何访问添加到尚未声明的 JPanel 的 swing 组件?
- c# - 从超类调用重载构造函数后要调用的强制方法
- android - 在 Android API Level 15+ 上进行 AES-GCM 加密
- android - 如何将文件从 Firebase 存储下载到自定义文件夹?
- android - 如何在应用程序中模仿设备的弯曲边缘?
- python - 如何构建正则表达式捕获索引
- r - chisq.test: x and y must have the same length
- googletest - Does Google Test have assumeSomthing macros?
- c# - Does the google .net admin API have the means to delete a user?