spool с заголовками столбцов в разделенных трубами sqlplus

В настоящее время я загружаю файл канала с помощью этого сценария sqlplus:

    set feedback off
    set echo off
    set verify off
    set pagesize 0
    set heading off
    set termout off
    set trim on
    set wrap on
    set trimspool on
    set linesize 9000
    spool c:\exp3.txt
    select
    to_char(D_DTM, 'mm-dd-yyyy hh24.mi.ss')||'|'||
    DAYOFWEEK||'|'||"24HOUR"||'|'||TECHNOLOGY||'|'||VOICEDATA||'|'||MRKT_NM||'|'||REGION_NM||'|'||CLUSTER_NM||'|'||
    CLUSTER2_NM||'|'||BSC_NM||'|'||BTS_ID||'|'||BSC_BTS||'|'||CSCD_ID||'|'||CSCD_NM||'|'||SECT_SEQ_ID||'|'||BND_ID||'|'||
    FA_ID||'|'||ATT_CNT||'|'||AXS_F_CNT||'|'||CE_BLK_CNT||'|'||CUST_BLK_CNT||'|'||DRP_CALL_CNT||'|'||HHI_ATT_CNT||'|'||
    HHI_BAFRM_CNT||'|'||HHI_CALL_SETUP_SXS_CNT||'|'||MBL_ORG_CNT||'|'||MBL_TER_CNT||'|'||NON_BTS_EQ_BLK_CNT||'|'||
    PRIM_CALL_ERL||'|'||PWR_BLK_CNT||'|'||SFUL_CALL_CNT||'|'||SILENT_RETRY_CNT||'|'||T1_BHL_BLK_CNT||'|'||WCD_BLK_CNT||'|'||
    SMS_ATT_CNT||'|'||SMS_SXS_CNT||'|'||CTRL_CH_USG_CNT||'|'||CTRL_SL_USG_CNT||'|'||DO_SECT_PHL_FWD_PS_TMS||'|'||
    DO_SECT_PHL_REV_PS_TMS||'|'||EUSR_CONN_SETUP_ATT_CNT||'|'||EUSR_CONN_SETUP_F_CNT||'|'||FWD_D_TRANSD_QTY||'|'||
    MAC_ID_BLK_CNT||'|'||MAC_ID_UTIL_RT||'|'||MS_RQST_CNT||'|'||MS_RQST_D_QTY||'|'||NORM_CONN_CLS_CNT||'|'||
    NORM_SESS_RLS_CNT||'|'||RAB_SET_CNT||'|'||RCVD_RAB_CNT||'|'||REV_AIR_PER_BAD_FRM_CNT||'|'||REV_AIR_PER_TRSF_D_QTY||'|'||
    REV_D_TRANSD_QTY||'|'||RNC_BLK_CNT||'|'||SESS_ATT_CNT||'|'||SESS_CONF_SXS_CNT||'|'||SL_USG_CNT||'|'||MAX_USER_CNT||'|'||
    AVG_USER_CNT||'|'||MOU_TMS||'|'
    from ds3r_fh_all_fa_lvl_kpi
    where D_DTM = to_date('8/19/2013', 'mm/dd/yyyy');

но я не могу понять, как включить имена столбцов в качестве заголовка в файл. Как я могу это сделать?


person lightweight    schedule 20.08.2013    source источник


Ответы (6)


Вы должны установить pagesize на ненулевое число, чтобы ваши заголовки отображались. Число, которое вы установите, может зависеть от количества имеющихся у вас строк. Если вы установите его 100 как

set pagesize 50000

затем 100 строк будут напечатаны под заголовками, затем заголовки столбцов будут повторяться для следующих 100 строк. Максимум, как указано в 50000. Также установите heading в положение on as

set heading on

в противном случае он не будет отображать заголовки, несмотря на то, что размер страницы не равен нулю. Также помните, что когда вы выбираете столбцы таким образом, они не будут заполняться, поэтому заголовки могут оказаться неуместными.

person Pradhyoth    schedule 22.08.2013

set heading on
set pagesize 0 embedded on
  • Включает заголовок
  • Бесконечный размер страницы
person Daniel Hári    schedule 27.05.2016

Я предложу вам более разумное решение, потому что я некоторое время работал над этим. Вместо того, чтобы отображать заголовок, что для меня не очень хорошее решение, вы можете создать его из своего собственного текста. Простое добавление SELECT и UNION сделает это красиво:

SELECT 'CHANNEL_CODE ; ISDN ; ACTIVATION_DATE ; TOTAL_MONEY ' from dual
union all
SELECT * ... (your query here)

Надеюсь, это поможет.

person pollux1er    schedule 26.10.2017

установка размера страницы в 0 отключает заголовки столбцов в sql*plus.

попробуй поставить 50000

set pagesize 50000

Я думаю, что это максимум (могу ошибаться!)

person BWS    schedule 20.08.2013

Ниже настройки в верхней части файла .sql работают.

установить размер страницы 50000
установить заголовок

person Santosh Gaikwad    schedule 04.02.2015

установить размер страницы 0, встроенный в

добавить строку выше после катушки

person Gaurav Pawar    schedule 17.08.2016