Pular para o conteúdo

Fóruns SQL e PL/SQL Tradução Script SQL >> Oracle Tradução Script SQL >> Oracle

#108824
Avatar photoJosé Laurindo Chiappa
Moderador

    Colega, vou tentar te dar uma ajuda geral MAS se vc vai passar a trabalhar com RDBMS Oracle, é ** COMPLETAMENTE OBRIGATÓRIO ** vc dar um estudada nos Conceitos do RDBMS Oracle (há DIVERSOS conceitos que vão mudar COMPLETAMENTE, como Controle de Transação, Paralelismo de SQL, métodos e middleware de conexão, etc, etc, etc), na implementação do RDBMS Oracle para a linguagem SQL (aqui vai ser muito mais pequenos detalhes, o geral do SQL é bem parecido em ambos os RDBMS, ie, SQLSERVER e Oracle) , na linguagem PL/SQL ** E **, principalmente, nas built-ins/funcionalidades específicas Oracle : esses dois últimos vão ser aprendizados ** BASTANTE DIFERENTES ** , há Muuuuitos Conceitos (como o fato do PL/SQL ser uma linguagem totalmente voltada ao back-end, não possuindo nem comando de PRINT de mensagens, ou o fato do PL/SQL possuir datatypes extras além dos do databasepor exemplo, entre outros) e Muuitas Sintaxes diferentes…. SE não o fez, comece pra Ontem esses estudos….

    Muito bem : não vou tirar o seu prazer de fazer por si mesmo (inclusive para servir de Oportunidade de Aprendizado) mas vou indicar as principais diferenças de Conceitos e de Sintaxes que ao que vejo podem te pegar :

    => as variáveis no PL/SQL até podem em muitos ambientes começar com @ mas ** diversos ** ambientes de programação (como o sqlplus, para citar um) usam o @ para funções próprias (chamar scripts, no caso do sqlplus) então Recomendo que vc troque todos os @variável por v_nomedavariável

    => o PL/SQL funciona com o conceito de BLOCOs, ie : vc tem uma seção ÚNICA de DECLARE aonde vc declara suas variáveis todas (não é um DECLARE por linha), e esse seção TEM que ficar em cima de um indicador BEGIN

    => para Atribuir um valor para uma variável programaticamente não se usa SET, a sintaxe é nomedavariavel := valorainserir;

    => o operador de Nulidade é IS NULL , e de não-nulidade é IS NOT NULL

    => todo SELECT ** ou ** tem que ter seus resultados guardados em variáveis (via SELECT colunasdesejadas INTO listadevariáveisseparadaspor vírgula), ** ou ** deve ser processado num LOOP, ** ou ** deve ter seu resultset inserido numa tabela

    => para fazer um IF em cima do resultado de um SELECT, esse resultado TEM que estar armazenado em variável ou em tabela

    => as tabelas-temporárias no RDBMS Oracle se chamam Global Temporary Table, e via de regra são criadas vazias FORA DO PROGRAMA que as usa (na implementação do Aplicativo, junto com o resto do modelo físico) e Não precisam ser dropadas/esvaziadas no final do uso

    ======>>>>> ALTERANDO esses pontos creio que teu script já vai estar praticamente pronto pra rodar no RDBMS Oracle…

    []s

    Chiappa