Ich möchte nur die Abfrage-Ausgabe in einer TXT-Datei mit Unix-Shell-Skript schreiben. Unten ist mein Code:Oracle - Unix-Abfrage
unterSET PAGESIZE 20000
SET COLSEP ","
SET LINESIZE 385
SET NUMWIDTH 300
SET WRAP OFF
SET FEEDBACK OFF
SET UNDERLINE OFF
SET ECHO OFF
SET TRIMSPOOL OFF
SET TAB OFF
COLUMN NSC Format a8
COLUMN STATUS Format a6
COLUMN GEO_CD Format a6
COLUMN COUNTRY Format a7
COLUMN LATA Format a4
COLUMN COMMUNITY_NAME a14
COLUMN COUNTY a6
COLUMN STREET_NUM1 a11
COLUMN POSTAL_CD a9
SPOOL NRM1.txt
SELECT GEO_SITE_CD||GEOP_SITE_CD||NW_SITE_CD NSC,STUS_CD STATUS,GEOP_SITE_CD GEO_CD,CTRY_CD COUNTRY,GEO_LATA_CD LATA,NVL(CURR_GEO_SITE_NME,GEO_SITE_NME) COMMUNITY_NAME,
CNTY_NME COUNTY,'"'||RPAD(NVL(TRIM(ADR_STREET_NBR),' '),15,' ')||'"' STREET_NUM1,
PSTL_CD POSTAL_CD
FROM CLONE_NW_SITE
WHERE CTRY_CD IN ('USA','PRI','VRI')
AND ROWNUM < 100
ORDER BY NSC;
SPOOL OFF
Ausgabe sieht:
NSC ,STATUS,GEO_CD,COUNTRY,LATA,COMMUNITY_NAME ,COUNTY ,STREET_NUM1 ,POSTAL_CD
ABITPR01,A ,PR ,PRI , ,AIBONITO (AIBONITO) ,AIBONITO ," " ,00705
Erforderlich Ausgabe sieht unter:
NSC ,STATUS,GEO_CD,COUNTRY,LATA,COMMUNITY_NAME ,COUNTY ,STREET_NUM1,POSTAL_CD
ABITPR01,A ,PR ,PRI , ,AIBONITO (AIBONITO) ,AIBONITO ," ",00705
Für STREET_NUM1 - I RPAD/NVL verwendet, es ändert sich die Kopfgröße und nach den Werten "" hat es 45 zusätzliche Leerzeichen. Ich will diese nicht.
Alle Vorschläge sind willkommen. Danke im Voraus.
Der Code in dieser Frage ist * nicht * ein UNIX-Shell-Skript. Es ist mir nicht klar, was diese Frage überhaupt mit UNIX zu tun hat. –
Welche Version von Oracle/sqlplus ist das? – BobC