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 DIVISION
para 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.