<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Job no Oracle</title>
	<atom:link href="http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/</link>
	<description></description>
	<lastBuildDate>Tue, 06 Dec 2011 12:07:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: oracle</title>
		<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/comment-page-1/#comment-419</link>
		<dc:creator>oracle</dc:creator>
		<pubDate>Mon, 28 Jun 2010 14:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=11#comment-419</guid>
		<description>---------MINHA RESPOSTA------------
Opa Rodrigo,

Obrigado pela visita.

Bom, quanto a seu problema, creio que a chamada da procedure no caso 1 está correto!
O que está errado é que a procedure DBMS_JOB.SUBMIT tem um parâmetro OUT e voce está passando valor, portanto deve estar dando erro na criação do JOB. Voce tem que criar uma variável, e quem atribui o nome (na verdade o número) do Job é o banco, e não voce. Portanto voce não tem como estabelecer esse 3000 aí como sendo o numero do seu Job.

O correto ficaria assim:

declare
   v_num_job binary_integer;
begin
  dbms_job.isubmit(v_num_job,

                            &#039;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(7942,X); END;&#039;,
                            sysdate,
                            &#039;sysdate + 1&#039;,
                            false);
end;

Faz o teste e diz se funcionou.

Grande abraço!



Atc.
Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9103-4984
Msn: gerson.vasconcelos@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


-------------EMAIL RECEBIDO-------------
Em 28 de junho de 2010 10:56, Rodrigo Dias &lt;rodrigo00737@gmail.com&gt;  escreveu:

Ola pesquisando sobre job achei um artigo seu e gostaria de saber se pode me dar uma ajuda

Estou criando um job aqui no meu banco, a stored procedure que eu disparo tem 2 parametros 1 de entrada e 1 de saida

crio o job assim

begin
  dbms_job.isubmit(3000,&#039;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(7942,X); END;&#039;,sysdate, &#039;sysdate + 1&#039;,false);
end;

mas da erro, e qndo coloco assim

begin
  dbms_job.isubmit(3000,&#039;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(:7942,X); END;&#039;,sysdate, &#039;sysdate + 1&#039;,false);
end;

adicionando os &quot;:&quot; antes do meu parametro da procedure ele compila mas nao executa a minha procedure

Vc sabe me dizer como faço pra passar parametro pra minha procedure...???

obs. a procedure inserir_contato-mailing qndo executada na mao funciona, ja testei ela, soh qndo eh startada pelo job que nao funciona

Obrigado ....</description>
		<content:encoded><![CDATA[<p>&#8212;&#8212;&#8212;MINHA RESPOSTA&#8212;&#8212;&#8212;&#8212;<br />
Opa Rodrigo,</p>
<p>Obrigado pela visita.</p>
<p>Bom, quanto a seu problema, creio que a chamada da procedure no caso 1 está correto!<br />
O que está errado é que a procedure DBMS_JOB.SUBMIT tem um parâmetro OUT e voce está passando valor, portanto deve estar dando erro na criação do JOB. Voce tem que criar uma variável, e quem atribui o nome (na verdade o número) do Job é o banco, e não voce. Portanto voce não tem como estabelecer esse 3000 aí como sendo o numero do seu Job.</p>
<p>O correto ficaria assim:</p>
<p>declare<br />
   v_num_job binary_integer;<br />
begin<br />
  dbms_job.isubmit(v_num_job,</p>
<p>                            &#8216;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(7942,X); END;&#8217;,<br />
                            sysdate,<br />
                            &#8216;sysdate + 1&#8242;,<br />
                            false);<br />
end;</p>
<p>Faz o teste e diz se funcionou.</p>
<p>Grande abraço!</p>
<p>Atc.<br />
Gerson S. de Vasconcelos Júnior<br />
OCA DBA &#8211; Oracle Certified Associate<br />
Fone: (81) 9103-4984<br />
Msn: <a href="mailto:gerson.vasconcelos@gmail.com">gerson.vasconcelos@gmail.com</a><br />
Skype: gersonvjunior<br />
<a href="http://www.diaadiaoracle.com.br/" rel="nofollow">http://www.diaadiaoracle.com.br/</a></p>
<p>&#8212;&#8212;&#8212;&#8212;-EMAIL RECEBIDO&#8212;&#8212;&#8212;&#8212;-<br />
Em 28 de junho de 2010 10:56, Rodrigo Dias <rodrigo00737 @gmail.com>  escreveu:</p>
<p>Ola pesquisando sobre job achei um artigo seu e gostaria de saber se pode me dar uma ajuda</p>
<p>Estou criando um job aqui no meu banco, a stored procedure que eu disparo tem 2 parametros 1 de entrada e 1 de saida</p>
<p>crio o job assim</p>
<p>begin<br />
  dbms_job.isubmit(3000,&#8217;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(7942,X); END;&#8217;,sysdate, &#8216;sysdate + 1&#8242;,false);<br />
end;</p>
<p>mas da erro, e qndo coloco assim</p>
<p>begin<br />
  dbms_job.isubmit(3000,&#8217;DECLARE x NUMBER; BEGIN INSERIR_CONTATO_MAILING(:7942,X); END;&#8217;,sysdate, &#8216;sysdate + 1&#8242;,false);<br />
end;</p>
<p>adicionando os &#8220;:&#8221; antes do meu parametro da procedure ele compila mas nao executa a minha procedure</p>
<p>Vc sabe me dizer como faço pra passar parametro pra minha procedure&#8230;???</p>
<p>obs. a procedure inserir_contato-mailing qndo executada na mao funciona, ja testei ela, soh qndo eh startada pelo job que nao funciona</p>
<p>Obrigado &#8230;.</rodrigo00737></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DANIEL</title>
		<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/comment-page-1/#comment-82</link>
		<dc:creator>DANIEL</dc:creator>
		<pubDate>Thu, 28 Jan 2010 14:02:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=11#comment-82</guid>
		<description>OBRIGADO PELA AJUDA VALEU</description>
		<content:encoded><![CDATA[<p>OBRIGADO PELA AJUDA VALEU</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oracle</title>
		<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/comment-page-1/#comment-58</link>
		<dc:creator>oracle</dc:creator>
		<pubDate>Wed, 04 Nov 2009 14:44:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=11#comment-58</guid>
		<description>Pessoal,

Mais uma dúvida tirada por e-mail... segue para que caso alguém tenha a mesma dúvida.

&lt;cite&gt;
Boa Tarde,

Estava pesquisando na internet e verifiquei um documento seu com explicação sobre jobs.

Estou precisando criar um job, porém o mesmo só poderá rodar uma vez, ou seja, não posso programar a próxima data de execução.

Você sabe se existe algum parâmetro para isso?

Pensei em criar e depois que rodado eu excluir, porém também não posso fazer isso por normas do cliente. Só posso criar e depois não poderei mais mexer até o ano que vem.

Aguardo retorno.

Att,
Rodolfo Mielitz
&lt;/cite&gt;

Minha resposta:

&lt;cite&gt;
Você pode tornar o job broken... ou seja, você diz pro banco que ele não vai mais executar.

Por exemplo:

begin
   dbms_job.broken(999, true);
end;

Onde 999 é o numero do teu Job. Isso diz pro banco que o Job está &quot;quebrado&quot; e assim ele fica inativo. Caso queira ativá-lo novamente, você altera o broken pra False!

Espero que te ajude.

Abraço.

Vou postar tua dúvida e a resposta como comentário no blog ok? Caso mais alguém tenha essa dúvida, já tá lá!

Depois diz se funcionou.



Atc.
Gerson S. de Vasconcelos Júnior
DBA Oracle / Oracle Certified (IZ0-007)
Fone: (81) 9103-4984 / (82) 9119-0640
Msn: gerson.vasconcelos@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/

&lt;/cite&gt;

Abraços a todos!</description>
		<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Mais uma dúvida tirada por e-mail&#8230; segue para que caso alguém tenha a mesma dúvida.</p>
<p><cite><br />
Boa Tarde,</p>
<p>Estava pesquisando na internet e verifiquei um documento seu com explicação sobre jobs.</p>
<p>Estou precisando criar um job, porém o mesmo só poderá rodar uma vez, ou seja, não posso programar a próxima data de execução.</p>
<p>Você sabe se existe algum parâmetro para isso?</p>
<p>Pensei em criar e depois que rodado eu excluir, porém também não posso fazer isso por normas do cliente. Só posso criar e depois não poderei mais mexer até o ano que vem.</p>
<p>Aguardo retorno.</p>
<p>Att,<br />
Rodolfo Mielitz<br />
</cite></p>
<p>Minha resposta:</p>
<p><cite><br />
Você pode tornar o job broken&#8230; ou seja, você diz pro banco que ele não vai mais executar.</p>
<p>Por exemplo:</p>
<p>begin<br />
   dbms_job.broken(999, true);<br />
end;</p>
<p>Onde 999 é o numero do teu Job. Isso diz pro banco que o Job está &#8220;quebrado&#8221; e assim ele fica inativo. Caso queira ativá-lo novamente, você altera o broken pra False!</p>
<p>Espero que te ajude.</p>
<p>Abraço.</p>
<p>Vou postar tua dúvida e a resposta como comentário no blog ok? Caso mais alguém tenha essa dúvida, já tá lá!</p>
<p>Depois diz se funcionou.</p>
<p>Atc.<br />
Gerson S. de Vasconcelos Júnior<br />
DBA Oracle / Oracle Certified (IZ0-007)<br />
Fone: (81) 9103-4984 / (82) 9119-0640<br />
Msn: <a href="mailto:gerson.vasconcelos@gmail.com">gerson.vasconcelos@gmail.com</a><br />
Skype: gersonvjunior<br />
<a href="http://www.diaadiaoracle.com.br/" rel="nofollow">http://www.diaadiaoracle.com.br/</a></p>
<p></cite></p>
<p>Abraços a todos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Varela</title>
		<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/comment-page-1/#comment-49</link>
		<dc:creator>Varela</dc:creator>
		<pubDate>Fri, 16 Oct 2009 01:29:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=11#comment-49</guid>
		<description>Garotão,
sobre Jobs uma das maiores dúvidas recaem sobre o código para as regras de periodicidade.
Você poderia dar exemplos para todas o tipos de regras, tipo: Rodar todos os dias as 08:00h e 20:00, rodar todas as Terças e Quitas a 01:00, Rodar todo dia tal, hora, e aí vai.

Abraço.
Alessandro Varela.</description>
		<content:encoded><![CDATA[<p>Garotão,<br />
sobre Jobs uma das maiores dúvidas recaem sobre o código para as regras de periodicidade.<br />
Você poderia dar exemplos para todas o tipos de regras, tipo: Rodar todos os dias as 08:00h e 20:00, rodar todas as Terças e Quitas a 01:00, Rodar todo dia tal, hora, e aí vai.</p>
<p>Abraço.<br />
Alessandro Varela.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gerson Júnior</title>
		<link>http://www.diaadiaoracle.com.br/2009/06/10/job-no-oracle/comment-page-1/#comment-47</link>
		<dc:creator>Gerson Júnior</dc:creator>
		<pubDate>Mon, 05 Oct 2009 12:30:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=11#comment-47</guid>
		<description>Pessoal, estou publicando aqui uma duvida tirada por e-mail do nosso amigo Marinho!&lt;br /&gt;&lt;br /&gt;Segue:&lt;br /&gt;&lt;br /&gt;DUVIDA - MARINHO&lt;br /&gt;&lt;br /&gt;Olá,&lt;br /&gt;&lt;br /&gt;Eu preciso programar no banco a execução de um job para que dispare uma determinada procedure todo dia 20 de outubro de cada ano às 5h00min am. Ou seja, uma determinada procedure deve ser executada somente uma vez por ano nessa data e hora específicas.&lt;br /&gt;&lt;br /&gt;Há como fazer essa programação através da DBMS_JOB?&lt;br /&gt;&lt;br /&gt;Att.&lt;br /&gt;&lt;br /&gt;-- &lt;br /&gt;Marinho&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MINHA RESPOSTA - GERSON&lt;br /&gt;Olá Marinho,&lt;br /&gt;&lt;br /&gt;Tem jeito sim.&lt;br /&gt;A forma de criar o JOB é do mesmo jeito, o que vai diferenciar neste caso é a data que o JOB vai iniciar (NEXT_DATE) e o intervalo que ele vai rodar novamente (INTERVAL) definindo de uma forma que retorne pra você o mesmo dia que ele rodou (20/10) às 05:00 só que no próximo ano.&lt;br /&gt;&lt;br /&gt;Testa isso aqui:&lt;br /&gt;&lt;br /&gt;declare&lt;br /&gt;n_job binary_integer;&lt;br /&gt;begin&lt;br /&gt;dbms_job.submit(n_job,&lt;br /&gt;&#039;declare n number; begin select 1 into n from dual; end;&#039;,&lt;br /&gt;to_date(&#039;20/10/2009 05:00&#039;, &#039;DD/MM/YYYY HH24:MI&#039;),&lt;br /&gt;&#039;add_months(to_date(to_char(sysdate, &#039;&#039;DD/MM/YYYY&#039;&#039;)&#124;&#124;&#039;&#039; 05:00&#039;&#039;, &#039;&#039;DD/MM/YYYY HH24:MI&#039;&#039;), 12)&#039;&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Só que no segundo parâmetro entra a tua procedure e sai esse bloco anônimo que coloquei aí pra testar.&lt;br /&gt;&lt;br /&gt;Espero que te ajude.&lt;br /&gt;&lt;br /&gt;Depois dá um retorno se ficou beleza.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RESPOSTA - MARINHO&lt;br /&gt;Camarada, funcionou como uma luva.&lt;br /&gt;&lt;br /&gt;Muito obrigado mesmo!&lt;br /&gt;&lt;br /&gt;[]&lt;br /&gt;---------------------------------&lt;br /&gt;&lt;br /&gt;Atc.&lt;br /&gt;Gerson Júnior&lt;br /&gt;(gerson.vasconcelos@gmail.com)</description>
		<content:encoded><![CDATA[<p>Pessoal, estou publicando aqui uma duvida tirada por e-mail do nosso amigo Marinho!</p>
<p>Segue:</p>
<p>DUVIDA &#8211; MARINHO</p>
<p>Olá,</p>
<p>Eu preciso programar no banco a execução de um job para que dispare uma determinada procedure todo dia 20 de outubro de cada ano às 5h00min am. Ou seja, uma determinada procedure deve ser executada somente uma vez por ano nessa data e hora específicas.</p>
<p>Há como fazer essa programação através da DBMS_JOB?</p>
<p>Att.</p>
<p>&#8211; <br />Marinho</p>
<p>MINHA RESPOSTA &#8211; GERSON<br />Olá Marinho,</p>
<p>Tem jeito sim.<br />A forma de criar o JOB é do mesmo jeito, o que vai diferenciar neste caso é a data que o JOB vai iniciar (NEXT_DATE) e o intervalo que ele vai rodar novamente (INTERVAL) definindo de uma forma que retorne pra você o mesmo dia que ele rodou (20/10) às 05:00 só que no próximo ano.</p>
<p>Testa isso aqui:</p>
<p>declare<br />n_job binary_integer;<br />begin<br />dbms_job.submit(n_job,<br />&#39;declare n number; begin select 1 into n from dual; end;&#39;,<br />to_date(&#39;20/10/2009 05:00&#39;, &#39;DD/MM/YYYY HH24:MI&#39;),<br />&#39;add_months(to_date(to_char(sysdate, &#39;&#39;DD/MM/YYYY&#39;&#39;)||&#39;&#39; 05:00&#39;&#39;, &#39;&#39;DD/MM/YYYY HH24:MI&#39;&#39;), 12)&#39;<br />);</p>
<p>end;</p>
<p>Só que no segundo parâmetro entra a tua procedure e sai esse bloco anônimo que coloquei aí pra testar.</p>
<p>Espero que te ajude.</p>
<p>Depois dá um retorno se ficou beleza.</p>
<p>RESPOSTA &#8211; MARINHO<br />Camarada, funcionou como uma luva.</p>
<p>Muito obrigado mesmo!</p>
<p>[]<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Atc.<br />Gerson Júnior<br />(gerson.vasconcelos@gmail.com)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

