Open SQL – Select , Insert, Update e Delete – Abap

Publicado: 20 de fevereiro de 2014 em Abap

Open SQL consiste em um conjunto de instruções ABAP que executam operações no banco de dados do sistema central do R/3. Os resultados das operações e as mensagens de erro são independentes do sistema de base de dados em uso. O Open SQL fornece, assim, uma sintaxe e semântica uniforme para todos os sistemas de banco de dados suportados pela SAP. Programas ABAP que utilizam apenas instruções Open SQL funcionará em qualquer sistema R/3, independentemente do sistema de banco de dados em uso. Instruções Open SQL só podem trabalhar com tabelas de banco de dados que foram criados no Dicionário ABAP.

Open SQL: Definição

Insert

A instrução Open SQL serve para inserir dados em uma tabela de banco de dados. Ela permite que você insira uma ou mais linhas na tabela do banco de dados alvo. Você pode especificar o destino da tabela de banco de dados estática ou dinamicamente.

Mais informações: Insert

Select

É uma instrução Open SQL para leitura de dados a partir de uma ou várias tabelas de banco de dados em objetos de dados. A instrução SELECT lê um conjunto de resultados a partir das tabelas do banco de dados especificados na fonte, e atribui os dados do conjunto de resultados para os objetos de dados especificados no alvo. Você pode restringir o conjunto de resultados usando a adição WHERE.

Mais informações: Select

UPDATE

A instrução UPDATE permite a atualização dos valores das colunas selecionadas de linhas de uma tabela de banco de dados.

Mais informações: Update

DELETE FROM

Para excluir linhas de qualquer tabela use a instrução DELETE FROM. Você pode usar a chave da tabela para encontrar e apagar uma única linha, eliminar um conjunto de linhas que atendam a uma condição, ou encontrar e apagar entradas duplicadas. Se a tabela tem uma chave não-exclusiva e há entradas duplicadas, a primeira entrada é eliminada.

Mais informações: Delete

Exemplos:

Neste exemplo usamos duas tabelas do FLIGHT MODEL e inserimos e selecionamos dados aleatórios nas tabelas SCURX, SBUSPART, ressaltando que ainda não precisamos respeitar nenhuma chave estrangeira nas tabelas standards, mais tarde usaremos BAPIs para atualizar consistentemente estas tabelas.

Abap

*&---------------------------------------------------------------------*
*& Report  ZMOEDA
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Flight Model - Moeda - Select e Insert
*&---------------------------------------------------------------------*

REPORT  ZMOEDA.

* Define a Tabela

TABLES SCURX.
TABLES SBUSPART.

* Cria as Arrays para os campos

DATA matriz  TYPE SCURX.
DATA matriz2 TYPE SBUSPART.

* Insere dados na tabela

matriz-currkey = 1.
matriz-currdec = 2.
INSERT INTO SCURX VALUES matriz.

matriz-currkey = 2.
matriz-currdec = 2.
INSERT INTO SCURX VALUES matriz.

matriz-currkey = 3.
matriz-currdec = 2.
INSERT INTO SCURX VALUES matriz.

* Seleciona dados da Tabela.

WRITE : / 'Tabela de Moedas', / .

SELECT * INTO matriz FROM SCURX.
  WRITE : / 'Chave da Moeda:', matriz-currkey, 'Decimais: ', matriz-currdec, /.
ENDSELECT.

* Insere dados na tabela SBUSPART

matriz2-mandant = '001'.
matriz2-buspartnum = 1.
matriz2-contact = 'Desenvolvimento Aberto'.
matriz2-contphono = '55 5555-55-55'.
matriz2-buspatyp = '01'.
INSERT INTO SBUSPART VALUES matriz2.

matriz2-mandant = '001'.
matriz2-buspartnum = 2.
matriz2-contact = 'GNU - Open Source'.
matriz2-contphono = '55 9999-99-99'.
matriz2-buspatyp = '01'.
INSERT INTO SBUSPART VALUES matriz2.

matriz2-mandant = '001'.
matriz2-buspartnum = 3.
matriz2-contact = 'SAP AG - Airlines'.
matriz2-contphono = '55 6666-66-66'.
matriz2-buspatyp = '01'.
INSERT INTO SBUSPART VALUES matriz2.
* Seleciona dados da tabela SBUSPART

WRITE : / 'Tabela de Linhas Aereas', / .

SELECT * INTO matriz2  FROM SBUSPART.
  WRITE : / 'Mandante:', matriz2-mandant ,
          / 'Numero do Parceiro:', matriz2-buspartnum,
          / 'Contato:', matriz2-contact,
          / 'Telefone:', matriz2-contphono, 'Parceiro de negocio:', matriz2-buspatyp, /.
ENDSELECT.

* Altera dados nas tabelas

UPDATE SBUSPART SET contact = 'Sem Contato cadasrado' WHERE buspartnum = 3.

WRITE : / 'Tabela de Linhas Aereas ALTERADA', / .

SELECT * INTO matriz2  FROM SBUSPART.
  WRITE : / 'Mandante:', matriz2-mandant ,
          / 'Numero do Parceiro:', matriz2-buspartnum,
          / 'Contato:', matriz2-contact,
          / 'Telefone:', matriz2-contphono, 'Parceiro de negocio:', matriz2-buspatyp, /.
ENDSELECT.

* Deleta dados da tabela

DELETE FROM SBUSPART WHERE buspartnum = 3.

WRITE : / 'Tabela de Linhas Aereas Deletada', / .

SELECT * INTO matriz2  FROM SBUSPART.
  WRITE : / 'Mandante:', matriz2-mandant ,
          / 'Numero do Parceiro:', matriz2-buspartnum,
          / 'Contato:', matriz2-contact,
          / 'Telefone:', matriz2-contphono, 'Parceiro de negocio:', matriz2-buspatyp, /.
ENDSELECT.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s