Criar funcao e procedimento?

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
stephany
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 25 Nov 2012 8:53 pm

Oi pessoal,sou iniciante e estou estudando umas questoes que o meu professor passou... Tipo ele fez um programa. Que não preciso coloca aqui. Ai ele pediu pra criar uma sintataxe. Seguintes questoes.. 1. Crie uma funcao que dado o titulo de um objeto de arte retorne o nome do artista que o criou.faca o tratamento de excecoes adequado. 2. Crie um procedimento que dado o nomede um artista,verifique o paisdeorigen dele e se ele for ingles,incremente o custo dos seus objetos de arte em 10% em outeo caso,incremente o custo de 5%. Faca o tratamento de exececoes adequado. Podem me ajudar a fazer? E descupem pelos erros de portugues to no cel...
alexrsilva
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 153
Registrado em: Ter, 27 Mai 2008 1:31 pm
Localização: Rio de Janeiro - RJ
Alex Silva
Analista de Sistemas
11i.10 Applications Developer Implementation Champion
11i.10 E-Business Suite Integration Champion

Bom dia stephany,
Podemos ajudar sim, diga o que precisa.
Já começou a fazer o programa? Quais são suas dúvidas?
Você vai ter uma stored procedure e dentro dela vai ter suas functions.
Começa a desenvolver e posta suas dúvidas para podermos ajudar.
stephany
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 25 Nov 2012 8:53 pm

O que eu entendi foi:

Selecionar tudo

create fuction objeto_de_arte return artista begin return (nome_artista) end select objeto_de_arte where
ta certo? Essa primeira questao
stephany
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 25 Nov 2012 8:53 pm

Tem que selecionar o nome ou o titulo?
stephany
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 25 Nov 2012 8:53 pm

Selecionar tudo

 create function objeto_de_arte
titulo varchar,nome char,v_nome) 
 Return varchar is 
v_nome 

begin 
end v_nome;
stephany
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 25 Nov 2012 8:53 pm

Dessisto....
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

se entendi bem você precisa de algo assim:

Selecionar tudo

create or replace function Objeto_de_arte (p_titulo   in varchar2 ) return varchar2
Is
 --
 vs_artista varchar2(120);
 --
Begin
    Begin
       select Nome_Artista into vs_artista
         from minha_tabela 
        where Titulo_Filme =  p_titulo
     Exception
       When others then
          vs_artista := Null;
     End;
  Return(vs_artista);
End ;
milhorini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 05 Dez 2012 7:28 am

Eu queria aproveitar esse tópico para tirar uma dúvida: o IN em um procedure é opcional, né? Estou perguntando porque eu criei um com parâmetros de entrada sem o IN, e funcionou perfeitamente.

Selecionar tudo

create or replace procedure pro_produto_insert(pro_numero number)
is
begin
 insert into produto values(seq_venda.nextval, pro_numero, sysdate);
end;
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

ok, até funciona pois ele deve interpretar como parametro de entrada. Mas o ideal é que você sempre siga a Sintaxe correta cfe abaixo:

Selecionar tudo

When you create a procedure or function, you may define parameters. There are three types of parameters that can be declared:

    IN - The parameter can be referenced by the procedure or function. The value of the parameter can not be overwritten by the procedure or function.
    OUT - The parameter can not be referenced by the procedure or function, but the value of the parameter can be overwritten by the procedure or function.
    IN OUT - The parameter can be referenced by the procedure or function and the value of the parameter can be overwritten by the procedure or function.
milhorini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 05 Dez 2012 7:28 am

Obrigado, Marlon!

Wilson
Responder
  • Informação
  • Quem está online

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