📌 Explicação
SORT
é o utilitário usado pra:
-
Ordenar arquivos com base em campos específicos
-
Filtrar registros com base em condições (INCLUDE/OMIT)
-
Resumir dados com somatório (SUM FIELDS)
-
Formatar saídas (OUTREC, INREC)
-
Fazer merge, split e join de arquivos
É tipo o Excel do mainframe, só que via JCL!
🧰 Usos mais comuns
-
Ordenar um arquivo para gerar relatórios
-
Eliminar duplicidades
-
Somar valores por chave (tipo GROUP BY)
-
Separar arquivos por condição
-
Gerar novos layouts de arquivo
🧾 Exemplo básico: ordenar por campo
//ORDENA JOB (1234),'COBOL DICAS',
// CLASS=A,MSGCLASS=X
//*
//STEP01 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=CDICAS.ENTRADA.DADOS,DISP=SHR
//SORTOUT DD DSN=CDICAS.SAIDA.ORDENADO,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(5,2)),UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=(1,10,CH,A)
/*
Esse exemplo:
-
Ordena o arquivo de entrada a partir da posição 1, com tamanho 10, tipo alfanumérico (CH) e em ordem ascendente (A)
🧾 Exemplo: eliminar registros duplicados
//SYSIN DD *
SORT FIELDS=(1,10,CH,A)
SUM FIELDS=NONE
/*
Ele vai manter apenas um registro por chave entre as posições 1 e 10.
🧾 Exemplo: somar valores por chave
//SYSIN DD *
SORT FIELDS=(1,10,CH,A)
SUM FIELDS=(11,5,ZD)
/*
Isso soma os valores numéricos contidos entre as posições 11 e 15, agrupados por chave entre 1 e 10.
🧾 Exemplo: selecionar registros
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(20,2,CH,EQ,C'RJ')
/*
Copia somente registros que tenham o valor
"RJ"
entre as posições 20 e 21.
🧾 Exemplo: reformatar registros
//SYSIN DD *
SORT FIELDS=COPY
OUTREC FIELDS=(1,10,C' - ',11,20)
/*
Gera um novo layout com os 10 primeiros bytes, insere
" - "
, e depois os 20 seguintes.
⚙️ Regras
-
Sempre defina corretamente o formato dos campos:
-
CH
= alfanumérico -
ZD
= decimal zonado -
PD
= decimal compactado -
BI
= binário
-
-
SORT FIELDS=COPY
é usado quando não quer ordenar, só aplicar filtros ou formatação -
Tudo é feito via SYSIN (sem programação externa!)
💡 Dicas
-
Use o SORT pra preparar arquivos antes de carregar no COBOL ou DB2.
-
Combine
INREC
,OUTREC
,SUM
,INCLUDE
eOMIT
pra montar lógicas avançadas. -
Pode usar
JOINKEYS
pra fazer junção de dois arquivos — tipo JOIN do SQL.
✅ Conclusão
O SORT
é um dos utilitários mais versáteis do mainframe. Com ele, dá pra fazer desde um filtro simples até um relatório complexo com agrupamentos, totais, quebras e formatação — tudo via JCL. Se dominar SORT
, você reduz programas COBOL inteiros a poucos comandos. E isso é poder de verdade!