Oracle

當我假離線到 CSV 時,前導零被截斷

  • December 17, 2020

我已經使用 sqlplus 將文件假離線到 CSV。一切都很好,但有一個問題。我有以 0 開頭的手機號碼,例如 04589 和 02586。

spooling 完成後,0 被截斷,最終結果為 4589 和 2586。

我希望輸出在 CSV 中顯示為:

04589
02586

字元串寫""在 CSV 之間。所以您的數據類型不是字元串類型,或者您用於查看 CSV 的工具會自動轉換和修剪它。

[oracle@o71 ~]$ sqlplus -S bp/bp
set markup csv on
set echo off
spool 1.csv
select '04589' as phone from dual
union all select '02586' from dual;

"PHONE"
"04589"
"02586"

exit
[oracle@o71 ~]$ cat 1.csv

"PHONE"
"04589"
"02586"

[oracle@o71 ~]$

實現這一目標的最簡單方法:

將具有前導零的列與前綴連接起來CHR(28),您就完成了。

例如

spool file1.csv
select numbercol from dual;
select CHR(28)||numbercol from table;
spool off;

CHR(28)是 ASCII 值的不可見字元表示。

引用自:https://dba.stackexchange.com/questions/226597