Como resolver as seguintes questões

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
melanthius
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Seg, 03 Out 2016 9:44 am

1) alterar dados em tabelas,com valor informado constante - criar um bloco PL-SQL para aumentar o valor das vendas em R$ 3000,00 de todos os fornecedores que tenham mais que 3 estrelas, sendo que o valor de R$ 3000 deverá ser informado em tempo de execução

2) deletar dados em tabelas,com o valor a ser deletado informado - Criar um bloco PL-SQL para deletar da tabela fornecedores o fornecedor de numero 30, no qual o numero do fornecedor deverá ser informado em tempo de execução.

3) acessar na tabela fornecedor o endereço e as vendas, sendo que o valor do fornecedor deverá ser constante-criar um bloco PL-SQL para acessar, na tabela fornecedores, o endereço e as vendas do fornecedor cujo número deverá ser informado na tela, mostrando em seguida o número do fornecedor, o endereço e as vendas.

fiz de uma forma simples é deu certo, porem preciso entender e ver como se faz em tempo de execução e como informar na tela
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Quero ver o que seu professor vai dizer quando ver esse tópico... :roll: :shock: :( :cry:

Mas voltando, o que você passou não tem como a gente ajudar.
Precisa ser mais específico.
Mostra pra gente o que você FEZ, que a gente diz o que você fez errado ou o que precisa ser modificado.
melanthius
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Seg, 03 Out 2016 9:44 am

Na primeira questão fiz da seguinte forma:

Selecionar tudo

BEGIN
UPDATE FORNECEDOR
SET VENDAS='3000'
WHERE ESTRELAS=3;
END;
/
só que não estou conseguindo deixar da forma que ele funcione em tempo de execução ou que eu informe o valor de 3000 na hora que o bloco estiver rodando
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Se for pra executar no SQL*Plus, pode fazer assim:

Selecionar tudo

BEGIN
UPDATE FORNECEDOR
SET VENDAS=&valor
WHERE ESTRELAS=3;
END;
/
Ou pode usar o comando ACCEPT do Sql*plus.
Leia sobre ele aqui no forum.
Veja esse exemplo:
http://glufke.net/oracle/viewtopic.php?t=10
melanthius
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Seg, 03 Out 2016 9:44 am

dr_gori escreveu:Se for pra executar no SQL*Plus, pode fazer assim:

Selecionar tudo

BEGIN
UPDATE FORNECEDOR
SET VENDAS=&valor
WHERE ESTRELAS=3;
END;
/
Ou pode usar o comando ACCEPT do Sql*plus.
Leia sobre ele aqui no forum.
Veja esse exemplo:
http://glufke.net/oracle/viewtopic.php?t=10

Muito obrigado consegui resolver a dois também com sua ajuda, agora na três fica dando erro
o código é o seguinte:

Selecionar tudo

BEGIN
SELECT ENDERECO,VENDAR
FROM FORNECEDOR
WHERE N_FOR=&VALOR;
END;
/
da um erro de que era esperado uma clausula into na instrução select, como posso resolver?
melanthius
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Seg, 03 Out 2016 9:44 am

dr_gori, poderia me ajudar a resolver esta ultima questão ?
por favor
melanthius
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Seg, 03 Out 2016 9:44 am

Selecionar tudo

DECLARE
V_ENDERECO FORNECEDOR.ENDERECO%TYPE;
V_VENDAR FORNECEDOR.VENDAR%TYPE;
BEGIN
SELECT ENDERECO, VENDAR
INTO V_ENDERECO, V_VENDAR
FROM FORNECEDOR
WHERE N_FOR=&NUMERO
DBMS_OUTPUT.PUT_LINE(V_ENDERECO ||'-'|| V_VENDAR);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('não há FORNECEDOR COM ESTE NUMERO');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE ('há MAIS DE UM FORNECEDOR COM ESTES NUMEROS');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERRO DESCONHECIDO');

fiz este código mas da erro:

Selecionar tudo

ERRO na linha 9:
ORA-06550: linha 8, coluna 16:
PL/SQL: ORA-00933: comando SQL nÒo encerrado adequadamente
ORA-06550: linha 5, coluna 1:
PL/SQL: SQL Statement ignored
pode me ajudar?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

O seu SQL está sem o ; no fim.

Selecionar tudo

SELECT ENDERECO, VENDAR
INTO V_ENDERECO, V_VENDAR
FROM FORNECEDOR
WHERE N_FOR=№  --- AQUI !!!!
E seu script está faltando o END; no fim também.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes