0.3 - select e fluxo do programa

24
8/18/2019 0.3 - Select e Fluxo Do Programa http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 1/24  Treinamento SQL Fluxo do programa

Upload: daniel

Post on 07-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 1/24

 

TreinamentoSQLFluxo do programa

Page 2: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 2/24

 

SQL e Fluxo do Programa – Introdução – SQL

 – Sentença SELECT básica

 – Exemplo de instrução SP SQL

 – Cláusula !"E#E

 – S$%S&'#C

 – I(T) C)##ESP)(*I(+ FIEL*S

Page 3: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 3/24

 

SQL e Fluxo do Programa – Introdução – Fluxo do Programa

 –  instrução IF

 – Express,es L-gicas

 – )peradores #elacionais

 – )peradores L-gicos

 – #ecomendaç,es sobre operadores l-gicos

 – )peradores de comparação de Strings

 –  instrução CSE

 –  instrução *)

 – .Loops/ anin0ados

Page 4: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 4/24

 

SQL e Fluxo do Programa –  instrução )( C"(+E )F

 –  instrução C"EC1

 –  instrução E2IT

 –  instrução C)(TI(&E

Page 5: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 5/24

 

Introdução % SQL

O SQL (Structured Query Language) doABAP (SAP SQL ou Open SQL) é umsubconunto do SQL padr!o utili"ado

dentro do SAP para recuperar os dadosdo Banco de #ados$Sua utili"a%!o é a mesma

independentemente do Banco de #ados

utili"ado pelo SAP pois as instru%&esSAP SQL s!o interpretadasautomaticamente para o

Banco sendo usado$

Page 6: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 6/24

 

Sentença SELECT básica

'ma tabela ue ai ter seu conte*do utili"ado no programa ABAP

dee ser declarada com a senten%a+

TABL,S -nome da tabela.$

TABL,S/ além de declarar a tabela/ também sere para criar uma01or2area3 do taman4o exato de um registro$

'ma 01or2area3 é uma 5rea de mem6ria utili"ada por tabelas eestruturas para arma"enagem tempor5ria de dados$A instru%!o S,L,7T automaticamente

coloca o registro corrente da tabela na 01or2area3$'m S,L,7T dee ser terminado com ,8#S,L,7T$

SELECT <campos> FROM <tabela>.

 <instruções...> 

ENDSELECT.

Page 7: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 7/24

 

Exemplo de instrução SP SQL

A instru%!o acima seleciona a 7ia$ Aérea e a #escri%!o da tabela

S7A99 e imprime esses campos$: recomend5el selecionar apenas os campos ue ser!o

utili"ados ao inés de usar Select ;$Quando se seleciona campos espec<=icos (=ield list) dee>se

explicitar ual 5rea de mem6ria tais camposser!o arma"enados atraés da cl5usula ?8TO$

T!LES " SCRR.

SELECT CRR#D

  CRRNME

FROM SCRR 

#NTO $SCRR%CRR#D&  SCRR%CRRNME'.

 (R#TE " ) SCRR%CRR#D& SCRR%CRRNME.

ENDSELECT.

Page 8: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 8/24

 

Cláusula !"E#E

A cl5usula @,9, é utili"ada no SAP SQL para restringir osregistros ue ser!o processados dentro de um S,L,7T$

A =orma de uma cl5usula @,9, é+@,9, -campo. -operador. -alorcampo.$

7l5usulas @,9, podem ter mais de um parCmetro/basta usar os operadores A8#/ O9 e 8OT$

SELECT CRR#D

  CRRNME

FROM SCRR 

#NTO $SCRR%CRR#D&

  SCRR%CRRNME'

 (*ERE CRR#D + ,L*-.

  (R#TE " ) SCRR%CRR#D& SCRR%CRRNME.

ENDSELECT.

Page 9: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 9/24

 

S$%S&'#C

SD>S'B97 é uma ari5el de sistema ue recebe o c6digo deretorno uando algo é executado dentro do SAP$

?sso também ale para instru%&es SQL/ por esse motiorecomenda>se =a"er a leitura do SD>S'B97 ap6s as instru%&esSQL para determinar se algum registro =oi lido$

Obs$+ O alor de retorno ue indica sucesso no SD>S'B97 éE ("ero)/ ualuer outro alor signi=ica algum erro

ou condi%!o de parada$Para o S,L,7T/ o alor indica ue nen4umregistro =ora encontrado$

Page 10: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 10/24

 

I(T) C)##ESP)(*I(+ FIEL*S

A cl5usula ?8TO 7O99,SPO8#?8G F?,L#S =a" com ue oscampos selecionados seam inseridos na 5rea de trabal4o

(1or2area) em campos ue ten4am exatamente o mesmo nome$?sso é muito *til para economi"ar trabal4o de digita%!o e n!oimplica em perda de per=ormance$

SELECT CRR#D

  CRRNME

FROM SCRR 

#NTO CORRESOND#N/ F#ELDS OF SCRR 

 (*ERE CRR#D + ,L*-.

  (R#TE " ) SFL#/*T%CRR#D& SFL#/*T%CONN#D.

ENDSELECT.

Page 11: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 11/24

 

Introdução – Fluxo do Programa

O =luxo do programa trata da ordem deexecu%!o do c6digo e isso enoledecis&es/ la%os e seus operadores$

O ABAP tem todos os controles de =luxonecess5rios para o desenoledor/ seapara tomada de decis!o ou para

execu%!o de loop$

,sta apresenta%!o tratar5 dos controlesde =luxo de programa mais b5sicos$

Page 12: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 12/24

 

  instrução IF

A instru%!o ?F é a mais b5sica dentro do ABAP/ basicamente elasere para determinar o ue ser5 executado para uma dada

condi%!o$ Todo ?F dee terminar com ,8#?F$,LS, sere para executar um c6digo caso as condi%&es

do ?F n!o =orem atendidas$,LS,?F é ao mesmo tempo um ,LS, e um ?F e

sere para anin4ar um noo ?F sem a necessidadede inserir o ,8#?F$

? -H IJ

,ntrada

da?dade (?)

0Kenor de

?dade3

0Kaioridade7iil3

? .H I

0KaioridadeLegal3

S

8

S

8

#F # <+ 01.

 (R#TE ,Menor 2e #2a2e-.

ELSE#F # >+ 30.

 (R#TE ,Maiori2a2e Ci4il-.

ELSE.

 (R#TE ,Maiori2a2e Le5al-.

END#F.

Page 13: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 13/24

 

Express,es L-gicas

,xpress&es L6gicas s!o as condi%&es testadas pelo ?F ue usam+

OP,9A#O9,S 9,LA7?O8A?S M compara%&es$

OP,9A#O9,S LNG?7OS M liga%!o entre as express&es$

OP,9A#O9,S #, 7OKPA9AO #, ST9?8GS M operadoresespeciais usados em campos tipo 7 e String$

Page 14: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 14/24

 

)peradores #elacionais

7ompara%!o Sintaxe?gual a H/ ,Q

#i=erente de - ./ .-/ 8,

Kaior ue ./ GT

Kaior ou igual a . H/ H ./ G,

Kenor ue -/ LT

Kenor ou igual a -H/ H-/ L,

,xistem também os operadores ?8/ B,T@,,8 e ?S ?8?T?AL+?8 identi=ica se o alor pertence a uma tabela de sele%!o$

B,T@,,8 identi=ica se o alor est5 entre um m<nimo e um m5ximo$

?S ?8?T?AL sere para comparar uma ari5el com o alor inicial$

Page 15: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 15/24

 

)peradores L-gicos

A 4ieraruia dos operadores l6gicos é 8OT/ A8# e O9$

Parnteses podem ser usados para agrupar express&es epara mudar a 4ieraruia de aalia%!o$

8OT A8# O9

Page 16: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 16/24

 

#ecomendaç,es sobre

operadores l-gicos

A recomenda%!o primordial é deixar as express&es

o mais simples poss<el/ a partir dessa recomenda%!o temos+

3 'sar l6gica positia/ ou sea eitar o 8OT uando poss<el$

3 ,itar também a combina%!o de express&es com A8#/ O9 e 8OTse poss<el$

Page 17: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 17/24

 

)peradores de comparação de Strings

Operadores de compara%!o de Strings s6 podem ser utili"adosem compara%&es de Strings e partes de Strings$

0;3 indica um conunto de uaisuer caracteres/ 0R3 indicacaracteres *nicos$ 'se 03 para o ABAP entender

os caracteres 0;3 e 0R3 literalmente$

7ompara%!o Sintaxe7ontém somente

7ontém ualuer 

7ontém string

7ontém padr!o7ontém n!o apenas

8!o contém ualuer 

8!o contém string

8!o contém padr!o

7O

7A

7S

7P78

8A

8S

8P

Page 18: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 18/24

 

  instrução CSE

A instru%!o 7AS, é utili"ada para distinguir op%&es mutuamenteexclusias$ O 7AS, lida com a possibilidade de uma ari5elassumir um de 5rios alores con4ecidos$

@,8 OT,9S processa instru%&es uando nen4umdos alores das cl5usulas @,8 =oi contemplado$

DT (6C#DDE$37' T8E C.

 <...> 

CSE (6C#DDE.

 (*EN ,S9O :LO-.

 (R#TE ,ESCOL*E: S9O :LO-.

 (*EN ,R#O DE ;NE#RO-.

 (R#TE ,ESCOL*E: R#O DE ;NE#RO-.

 (*EN OT*ERS.

 (R#TE ,ESCOL*E: O:TR C#DDE-.

ENDCSE.

Page 19: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 19/24

 

  instrução *)

A instru%!o #O é um 0loop3 (la%o) ue executa um bloco de c6digoincondicionalmente$

O =ormato #O -n. T?K,S é necess5rio para eitarue o 0loop3 sea in=inito$Alternatiamente o #O pode ser interrompido

pelas instru%&es ,?T/ STOP ou 9,U,7T$A ari5el de sistema SD>?8#, indica o passo atual do 0loop3$

DO.

 (R#TE ,LOO #NF#N#TO-.

ENDDO.

DT (6LOO T8E # L:E =.

DO (6LOO T#MES.

 (R#TE ") ,SSO-& S8%#NDE.

ENDDO.

Page 20: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 20/24

 

.Loops/ anin0ados

C?D#/O"

DO 3 T#MES.

  (R#TE ") S8%#NDE.

  DO @ T#MES.

  (R#TE " ) , ,& S8%#NDE.

  ENDDO.

ENDDO.

A sa<da seria+

I

  I

 

  V

  I

 

  V

Page 21: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 21/24

 

  instrução )( C"(+E )F

O8 7A8G, OF é usado dentro de um 0loop3 para determinar seum determinado alor =oi modi=icado em rela%!o ao passo

anterior dentro do mesmo 0loop3$

8a primeira passagem o retorno é sempre T9',$: poss<el usar o conector O9 para O8 7A8G, OF$

,8#O8 indica o =inal da instru%!o$

SELECT A FROM SFL#/*T.

ON C*N/E OF SFL#/*T%CONN#D.

 <...> 

ENDON.

ENDSELECT.

Page 22: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 22/24

 

  instrução C"EC1

O 7,7W testa uma express!o l6gica$Basicamente ele é um ?F sem ,8#?F/ ou sea/ caso a express!o sea

FALS, o c6digo abaixo do 7,7W n!o ser5 executado$

,xistem trs situa%&es poss<eis com o 7,7Wcaso a express!o retorne FALS,+I M #entro de um 0loop3 M o 0loop3 é interrompido$

M Fora de um 0loop3 e dentro de uma sub>rotina M a sub>rotina é terminada$V M Fora de um 0loop3 e de uma sub>rotina M o programa é terminado$

DO 07 T#MES.

C*ECB S8%#NDE + =.

 (R#TE ") S8%#NDE.

ENDDO.

Se SD>?8#, H o0loop3 é interrompido$

Page 23: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 23/24

 

  instrução E2IT

A instru%!o ,?T termina um 0loop3/ subrotina ou programa$

#F S8%S:!RC <> 7.

E#T.

END#F.

Page 24: 0.3 - Select e Fluxo Do Programa

8/18/2019 0.3 - Select e Fluxo Do Programa

http://slidepdf.com/reader/full/03-select-e-fluxo-do-programa 24/24

 

  instrução C)(TI(&E

A instru%!o 7O8T?8', é sempre usada dentro de um 0loop3/ essa instru%!oretorna o controle para o topo da instru%!o de 0loop3 incondicionalmente

Se o 0loop3 estier no*ltimo passo ele é terminado$

DO 07 T#MES.

#F S8%#NDE >+ =.

CONT#N:E.

END#F.

 (R#TE ") S8%#NDE.

ENDDO.