A instrução SELECT é usada na Divisão de Ambiente para associar um nome lógico de arquivo (definido pelo programador) a um nome de dispositivo externo (como um arquivo físico no sistema).
📌 Para que serve
-
Definir os arquivos que serão usados no programa COBOL.
-
Relacionar um nome lógico (usado no código) com um nome externo (físico).
-
Configurar arquivos de entrada e saída, como arquivos de dados e relatórios.
🧾 Sintaxe básica
SELECT nome-logico-arquivo
ASSIGN TO nome-fisico-dispositivo
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
✅ Exemplo prático
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ARQ-ENTRADA ASSIGN TO "clientes.txt"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT RELATORIO ASSIGN TO "saida.lst"
ORGANIZATION IS SEQUENTIAL.
📌 Nesse exemplo:
-
ARQ-ENTRADAé um nome lógico definido pelo programador. -
"clientes.txt"é o nome do arquivo físico que será lido. -
RELATORIOé um arquivo de saída que será criado.
⚙️ Como funciona internamente
| Elemento | Função |
|---|---|
SELECT |
Define o nome lógico do arquivo no programa. |
ASSIGN TO |
Informa qual nome externo (sistema operacional) será vinculado. |
ORGANIZATION IS |
Define a organização do arquivo (SEQUENTIAL, INDEXED, RELATIVE). |
ACCESS MODE IS |
Define o modo de acesso ao arquivo (SEQUENTIAL, RANDOM, DYNAMIC). |
⚠️ Regras para nomes de arquivos lógicos
-
De 1 a 30 caracteres.
-
Letras, números e hifens (
-) permitidos. -
Deve conter pelo menos uma letra.
-
Não pode iniciar ou terminar com hífen.
-
Sem espaços.
-
Não pode usar palavras reservadas do COBOL.
🧠 Dicas práticas
-
Use nomes descritivos para arquivos:
CLIENTES-ARQ,VENDAS-OUT,RELATORIO-FINAL. -
Evite nomes genéricos como
ARQ1,AUX,TESTE, etc. -
Combine com a FD na
DATA DIVISIONpara descrever o layout dos registros:
FILE SECTION.
FD ARQ-ENTRADA.
01 REGISTRO-ENTRADA PIC X(100).
✅ Conclusão
A instrução SELECT é a ponte entre o programa COBOL e o sistema operacional, permitindo que arquivos reais sejam utilizados por nomes lógicos definidos no código. É essencial para qualquer programa que leia ou grave dados em arquivos externos.