Olá pessoal, estou em um treinamento oracle e não estou conseguindo resolver esse exercicio..
alguém poderia me ajudar?
obrigado..Marcus.
Fazer uma procedure para ler o número e nome dos departamentos. Para cada depto lido, chamar outra procedure para ler o número, nome, salário e cargo dos funcionários.
OBS: Quando o departamento não possuir funcionário mostrar mensagem.
Ex: 10 vendas
1 jose 1.000,00 vendedor
2 maria 1.200,00 vendedor
20 analista
3 sandro 3.400,00 analista
4 pedro 4.000,00 analista
30 compras
Esse depto não possui empregados
Ajuda com um exercicio
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
- dr_gori
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Por várias razões eu tenho quase certeza que esse tópico nunca receberá uma resposta:
1. Não sabemos as tabelas. É do SCOTT ? (não foi citado).
2. É um treinamento curso que você está fazendo. Não faz sentido alguém daqui fazer o exercício pra você, pois o objetivo do seu curso não será alcançado (que é você aprender)
3. Provavelmente tem algum professor aí que está sendo PAGO pra ensinar essas coisas.
Desculpe dizer isso, mas o povo daqui está na maior correria... Já é difícil a gente conseguir dar uma mão pra quem está numa situação de vida ou morte no trabalho... Mais difícil ainda é fazer exercicios...
Agora, se você fizer uma pergunta específica assim:
"Tenho uma tabela X, e preciso fazer uma consulta Y, usando os campos Z. Tentei da seguinte forma .... mas não consegui! Alguém aí tem alguma idéia?"
Aí sim, provavelmente você terá muitas respostas! Reformule sua pergunta que o povo daqui gosta de ajudar!!! Mas como está acima, acho que não vai rolar :-S
1. Não sabemos as tabelas. É do SCOTT ? (não foi citado).
2. É um treinamento curso que você está fazendo. Não faz sentido alguém daqui fazer o exercício pra você, pois o objetivo do seu curso não será alcançado (que é você aprender)
3. Provavelmente tem algum professor aí que está sendo PAGO pra ensinar essas coisas.
Desculpe dizer isso, mas o povo daqui está na maior correria... Já é difícil a gente conseguir dar uma mão pra quem está numa situação de vida ou morte no trabalho... Mais difícil ainda é fazer exercicios...
Agora, se você fizer uma pergunta específica assim:
"Tenho uma tabela X, e preciso fazer uma consulta Y, usando os campos Z. Tentei da seguinte forma .... mas não consegui! Alguém aí tem alguma idéia?"
Aí sim, provavelmente você terá muitas respostas! Reformule sua pergunta que o povo daqui gosta de ajudar!!! Mas como está acima, acho que não vai rolar :-S
Editado pela última vez por dr_gori em Sex, 17 Out 2008 4:50 pm, em um total de 1 vez.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Blezera brothers?!!
Creio que deva estar utilizando a emp e a dept do scott mesmo velho...
Mas, (concordo com o Dr_Gori que ) o lance é correr atrás e postar a dúvida, e, se a gente puder ajudar, ai sim entramos na conversa...
Mesmo porquê, quando este curso lhe propiciar um emprego, não teremos como ajudá-lo na tua tabela X ou Y, mas sim, direcioná-lo para algumas situações que porventura já passamos.
Qualquer coisa, manda pra gente.
Creio que deva estar utilizando a emp e a dept do scott mesmo velho...
Mas, (concordo com o Dr_Gori que ) o lance é correr atrás e postar a dúvida, e, se a gente puder ajudar, ai sim entramos na conversa...
Mesmo porquê, quando este curso lhe propiciar um emprego, não teremos como ajudá-lo na tua tabela X ou Y, mas sim, direcioná-lo para algumas situações que porventura já passamos.
Qualquer coisa, manda pra gente.
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
olá pessoal.
desculpem o encomodo.
Abraços.
desculpem o encomodo.
Abraços.
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Prezado Marcus Vinícius,
E então, conseguiu resolver?Qualquer coisa, manda aí, estamos aqui para lhe ajudar!! ainda mais, com as com as dicas preciosas de nossos colegas acima!!
Um abraço,
Edson
E então, conseguiu resolver?Qualquer coisa, manda aí, estamos aqui para lhe ajudar!! ainda mais, com as com as dicas preciosas de nossos colegas acima!!
Um abraço,
Edson
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
Então Amigos, não consegui resolver. é a as tabelas emp e dept do scott...eu fiz uma coisa assim ....
mas como ainda estou iniciando...está dificil...
obrigado da ajuda, abraço.
mas como ainda estou iniciando...está dificil...
CREATE OR REPLACE PROCEDURE P_EXER6 IS
CURSOR CUR_X IS
SELECT DEPTNO, DNAME FROM DEPT;
BEGIN
FOR X IN CUR_X LOOP
DBMS_OUTPUT.PUT_LINE( X.DEPTNO || ‘ ‘ || X.DNAME || ‘ ‘ || VA_PRO);
END LOOP;
END;
CREATE OR REPLACE PROCEDURE P_EXERCICIO IS
CURSOR CUR_Y IS
SELECT EMPNO, ENAME, SAL, JOB FROM EMP;
BEGIN
FOR Y IN CUR_Y LOOP
DBMS_OUTPUT.PUT_LINE(Y.EMPNO || ‘ ‘ || Y.ENAME || ‘ ‘ || Y.SAL || ‘ ‘
|| Y.JOB);
END LOOP;
END;
obrigado da ajuda, abraço.
-
- Rank: Analista Sênior
- Mensagens: 147
- Registrado em: Qui, 16 Mar 2006 11:26 am
- Localização: São Paulo
O mundo gira muito!!
Caro Marcus Vinícius Sanchez,
assim, você tem este exercício mencionado abaixo, certo?
em qual ponto do exercício, você está sentindo dificuldade?
é na montagem do select´s, nas procedures, nas chamadas de procedures ou na mensagem?
todos aqui do forum fazem o melhor que podem, mas, precisamos saber qual é a dúvida que você tem, para poder te ajudar e ter uma resposta a altura...entendeu
observamos, que você montou duas procedures, o que será que está faltando?
Abs Hahu.
Deus abençõe a Todos!
assim, você tem este exercício mencionado abaixo, certo?
em qual ponto do exercício, você está sentindo dificuldade?
é na montagem do select´s, nas procedures, nas chamadas de procedures ou na mensagem?
todos aqui do forum fazem o melhor que podem, mas, precisamos saber qual é a dúvida que você tem, para poder te ajudar e ter uma resposta a altura...entendeu
observamos, que você montou duas procedures, o que será que está faltando?
Abs Hahu.
Deus abençõe a Todos!
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
Olá Hahu.
estou com dificuldade para chamar uma procedure dentro de outra..
""Fazer uma procedure para ler o número e nome dos departamentos. Para cada depto lido, chamar outra procedure para ler o número, nome, salário e cargo dos funcionários."""
criei as procedures..mas não estou conseguindo chamar..
obrigado amigos..Abraço a todos.
estou com dificuldade para chamar uma procedure dentro de outra..
""Fazer uma procedure para ler o número e nome dos departamentos. Para cada depto lido, chamar outra procedure para ler o número, nome, salário e cargo dos funcionários."""
criei as procedures..mas não estou conseguindo chamar..
obrigado amigos..Abraço a todos.
-
- Rank: Analista Sênior
- Mensagens: 147
- Registrado em: Qui, 16 Mar 2006 11:26 am
- Localização: São Paulo
O mundo gira muito!!
Caro Marcus Vinícius Sanchez,
então...está é uma solução...rs
..após você criar as duas procedures no sqlplus..como sugestão, você pode fazer assim:
salve este script no bloco de notas como chama_proc.sql...o codigo abaixo!
daee você executa no sqlplus: exec chama_proc;
Veja, o que acontece e posta aqui no forum..
abs Hahu
então...está é uma solução...rs
CREATE OR REPLACE PROCEDURE P_EXER6 IS
CURSOR CUR_X IS
SELECT DEPTNO, DNAME FROM DEPT;
BEGIN
FOR X IN CUR_X LOOP
DBMS_OUTPUT.PUT_LINE( X.DEPTNO || ‘ ‘ || X.DNAME || ‘ ‘ || VA_PRO);
END LOOP;
END;
CREATE OR REPLACE PROCEDURE P_EXERCICIO IS
CURSOR CUR_Y IS
SELECT EMPNO, ENAME, SAL, JOB FROM EMP;
BEGIN
FOR Y IN CUR_Y LOOP
DBMS_OUTPUT.PUT_LINE(Y.EMPNO || ‘ ‘ || Y.ENAME || ‘ ‘ || Y.SAL || ‘ ‘
|| Y.JOB);
END LOOP;
--- Aqui você chama a p_exer6 , só que você tem que rodar primeira a p_exer6
P_EXER6;
--
END;
..após você criar as duas procedures no sqlplus..como sugestão, você pode fazer assim:
salve este script no bloco de notas como chama_proc.sql...o codigo abaixo!
declare
begin
P_EXERCICIO;
end;
Veja, o que acontece e posta aqui no forum..
abs Hahu
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
OBRIGADO DA ATENÇÃO GALERA, DEU PARA ENTEDER !!
ABRAÇOS.
ABRAÇOS.
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Caros colegas,
Primeiro: tentei reproduzir a situação de nosso colega mas está dando um erro no campo "VA_PRO, fala que ele tem que ser declarado.
Então, a gente cria uma a uma das procedures, ok? Depois cria uma outra procedure com este ultimo código e manda executar?
gostaria de entender junto com ele este código!!
Obrigado,
Primeiro: tentei reproduzir a situação de nosso colega mas está dando um erro no campo "VA_PRO, fala que ele tem que ser declarado.
Então, a gente cria uma a uma das procedures, ok? Depois cria uma outra procedure com este ultimo código e manda executar?
gostaria de entender junto com ele este código!!
Obrigado,
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
Caro Edson,
essa va_pro não existe, eu tinha colocado ela..porque tinha pensado que iria usa-lá
abraços, Marcus.
essa va_pro não existe, eu tinha colocado ela..porque tinha pensado que iria usa-lá
abraços, Marcus.
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Marcus Vinicius,
òtimo!! então, consegui compilar as 2 procedures, ok!! Quando eu utilizo no SQL PLUS o comando:
Exec P_Exercicio e Exec P_Exer6, recebo o retorno ok das 2 procedures, mas e daí? como é que você verá os resultados? Veja o que eu fiz:
Então, é por aí?
Edson
òtimo!! então, consegui compilar as 2 procedures, ok!! Quando eu utilizo no SQL PLUS o comando:
Exec P_Exercicio e Exec P_Exer6, recebo o retorno ok das 2 procedures, mas e daí? como é que você verá os resultados? Veja o que eu fiz:
SQL*Plus: Release 9.0.1.0.1 - Production on Dom Out 19 20:49:11 2008
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Conectado a:
Personal Oracle9i Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production
SQL> exec P_Exercicio;
Procedimento PL/SQL concluído com sucesso.
SQL> exec P_Exer6;
Procedimento PL/SQL concluído com sucesso.
SQL>
Edson
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
Então ...
olha como sai...
gostaria q saisse por departamento...exemplo...
abraços
olha como sai...
7369 SMITH 1464,1 CLERK
7499 ALLEN 1760 SALESMAN
7521 WARD 1375 SALESMAN
7566 JONES 5270,4 MANAGER
7654 MARTIN 1375 SALESMAN
7698 BLAKE 3135 MANAGER
7782 CLARK 2964,5 MANAGER
7788 SCOTT 6200,47 ANALYST
7839 KING 6050 PRESIDENT
7844 TURNER 1650 SALESMAN
7876 ADAMS 1948,72 CLERK
7900 JAMES 1045 CLERK
7902 FORD 5314,68 ANALYST
7934 MILLER 1573 CLERK
19 MARCUS 800 ANALISTA
1 JOSE 1210 ANALISTA
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
gostaria q saisse por departamento...exemplo...
10 vendas
1 jose 1.000,00 vendedor
2 maria 1.200,00 vendedor
20 analista
3 sandro 3.400,00 analista
4 pedro 4.000,00 analista
30 compras
Esse depto não possui empregados
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Caro Marcus Vinícius,
Como é que você faz para ver os dados? após executar as procedures através do SQLPLUS o que é que tenho que fazer para ver a relação dos dados conforme você informou acima? É através de algum relatório? En fim se puder dar a dica, ficarei muito grato,
Edson
Como é que você faz para ver os dados? após executar as procedures através do SQLPLUS o que é que tenho que fazer para ver a relação dos dados conforme você informou acima? É através de algum relatório? En fim se puder dar a dica, ficarei muito grato,
Edson
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Olá Marcus,
E então, é possível você mostrar aqui como é que se faz então para ver os dados conforme você disse acima? Gostaria de saber o arroz com feijão mesmo, ou seja a maneira mais simples e explicar como é que se fazer isso!! Obrigado,
E então, é possível você mostrar aqui como é que se faz então para ver os dados conforme você disse acima? Gostaria de saber o arroz com feijão mesmo, ou seja a maneira mais simples e explicar como é que se fazer isso!! Obrigado,
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Qua, 20 Ago 2008 5:06 pm
- Localização: Tupã/SP
" Sigo sempre em Deus ! "
faz os exec`s das procedures..
meu professor apresentou para mim a resposta..
faz assim edson para você ver no sql*plus
abraços
meu professor apresentou para mim a resposta..
create or replace procedure p_func(pa_depto in number) is
cursor cur_func is
select empno, ename, sal, job
from emp
where deptno = pa_depto
order by 1;
va_tot number(10) := 0;
begin
for x in cur_func loop
dbms_output.put_line(x.empno||' '||x.ename||' '||x.sal||' '||x.job);
va_tot := va_tot + 1;
end loop;
if va_tot = 0 then
dbms_output.put_line('Esse depto não possui empregados');
end if;
end;
/
create or replace procedure p_depto is
cursor cur_depto is
select deptno, dname
from dept
order by 1;
begin
for x in cur_depto loop
dbms_output.put_line(x.deptno||' '||x.dname);
p_func(x.deptno);
end loop;
end;
/
exec p_depto
faz assim edson para você ver no sql*plus
abraços
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Olá Marcus,
Caramba, acredito que estou fazendo tudo certo mas não gera a lista. Só é informado que foi executado com sucesso. O que é que pode estar faltando?
Grato, Edson
Caramba, acredito que estou fazendo tudo certo mas não gera a lista. Só é informado que foi executado com sucesso. O que é que pode estar faltando?
Grato, Edson
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Edson, está rodando no SQL*Plus?
Antes de executar a procedure, execute o seguinte comando:
Qualquer coisa, manda pra gente.
Antes de executar a procedure, execute o seguinte comando:
SET SERVEROUTPUT ON;
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Prezado Trevissoli,
Era este, o detlhe... Consegui, deu tudo certo após executar o ódigo que você informou.
Mais uma vez, meus agradeciemntos...
Edson
Era este, o detlhe... Consegui, deu tudo certo após executar o ódigo que você informou.
Mais uma vez, meus agradeciemntos...
Edson
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Blzera velho...q bom q deu certo aí.
Precisando, conta com a gente.
Precisando, conta com a gente.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 8 visitantes