<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de sergio &#187; Oracle</title>
	<atom:link href="http://www.serunix.com/category/oracle/feed" rel="self" type="application/rss+xml" />
	<link>http://www.serunix.com</link>
	<description>"...si lo puedes soñar, lo puedes hacer"</description>
	<lastBuildDate>Sun, 24 Jan 2010 15:29:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hibernate: como regresar un sólo valor que sea un tipo primitivo?</title>
		<link>http://www.serunix.com/2009/08/21/hibernate-como-regresar-un-solo-valor-que-sea-un-tipo-primitivo</link>
		<comments>http://www.serunix.com/2009/08/21/hibernate-como-regresar-un-solo-valor-que-sea-un-tipo-primitivo#comments</comments>
		<pubDate>Fri, 21 Aug 2009 13:26:22 +0000</pubDate>
		<dc:creator>sergio</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.serunix.com/?p=420</guid>
		<description><![CDATA[Es un poco básico pero la verdad es que es de gran ayuda, ya que si quieres regresar un date, string, long, etc. (datso primitivos) pues evitas mapear el resultado dentro de un objeto.
bueno, al grano!!! vamos a obtener el nombre del autor dependiendo del su ID
tautor.hbm.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
&#60;?xml version=&#34;1.0&#34;?&#62;
&#60;!DOCTYPE hibernate-mapping PUBLIC &#34;-//Hibernate/Hibernate Mapping DTD 3.0//EN&#34;
&#34;http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&#34;&#62;
&#160;
&#60;hibernate-mapping&#62;
&#60;sql-query name=&#34;searchAutor&#34;&#62;
	 [...]]]></description>
			<content:encoded><![CDATA[<p>Es un poco básico pero la verdad es que es de gran ayuda, ya que si quieres regresar un date, string, long, etc. (datso primitivos) pues evitas mapear el resultado dentro de un objeto.</p>
<p>bueno, al grano!!! vamos a obtener el nombre del autor dependiendo del su ID</p>
<p>tautor.hbm.xml</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;?xml <span style="color: #000066;">version</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1.0&quot;</span>?&gt;</span>
<span style="color: #00bbdd;">&lt;!DOCTYPE hibernate-mapping PUBLIC &quot;-//Hibernate/Hibernate Mapping DTD 3.0//EN&quot;</span>
<span style="color: #00bbdd;">&quot;http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;hibernate-mapping&gt;</span>
<span style="color: #009900;">&lt;sql-query <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;searchAutor&quot;</span>&gt;</span>
	    <span style="color: #009900;">&lt;return-scalar  column<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;name&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;java.lang.String&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    	<span style="color: #808080; font-style: italic;">&lt;!-- La columna que se quiera regresar y su tipo de dato--&gt;</span>
    	 SELECT 
    	 	name  
    	 FROM 
    	 	tautor 
&nbsp;
	  WHERE
		idautor = :id
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>sql-query&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>hibernate-mapping&gt;</span></pre></td></tr></table></div>

<p>ya que tenemos el mapeo&#8230; vamos a la implementación</p>
<p>HTautorDao.java</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HTautorDao <span style="color: #000000; font-weight: bold;">extends</span> AbstractDAO <span style="color: #000000; font-weight: bold;">implements</span> TautorDao
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getNameAutor<span style="color: #009900;">&#40;</span><span style="color: #003399;">Long</span> id<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span>
        <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> paramNames <span style="color: #339933;">=</span>
                <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;id&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> values <span style="color: #339933;">=</span>
                <span style="color: #009900;">&#123;</span> id <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
          <span style="color: #666666; font-style: italic;">// nos regresa el tipo primitivo que queramos o con metodos que tiene DataAccessUtils</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span> DataAccessUtils.<span style="color: #006633;">uniqueResult</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>getHibernateTemplate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
                    .<span style="color: #006633;">findByNamedQueryAndNamedParam</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;searchAutor&quot;</span>, paramNames, values<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            log.<span style="color: #006633;">fatal</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>así pueden tener las consultas utilizando hibernate&#8230; y regresar tipos primitivos como los antes mencionados..</p>
<p>NOTA: siempre y cuando sea sólo valor como resultado, por que de lo contrario estamos ablando de otra forma de hacerlo.</p>
<p>java doc: http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/dao/support/DataAccessUtils.html#uniqueResult</p>
]]></content:encoded>
			<wfw:commentRss>http://www.serunix.com/2009/08/21/hibernate-como-regresar-un-solo-valor-que-sea-un-tipo-primitivo/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo ejecutar un PL desde el SQL windows on Oracle????</title>
		<link>http://www.serunix.com/2009/06/24/como-ejecutar-un-pl-desde-el-sql-windows</link>
		<comments>http://www.serunix.com/2009/06/24/como-ejecutar-un-pl-desde-el-sql-windows#comments</comments>
		<pubDate>Wed, 24 Jun 2009 07:02:38 +0000</pubDate>
		<dc:creator>sergio</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.serunix.com/?p=378</guid>
		<description><![CDATA[Ya por último, para probar el PL que hemos creado anteriormente lo podemos ejecutar de la siguiente manera:

1
  execute BOOKSDEL_PKG.delete_book(1); // 1 es el id

]]></description>
			<content:encoded><![CDATA[<p>Ya por último, para probar el PL que hemos creado anteriormente lo podemos ejecutar de la siguiente manera:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;">  execute BOOKSDEL_PKG.delete_book(1); // 1 es el id</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.serunix.com/2009/06/24/como-ejecutar-un-pl-desde-el-sql-windows/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo crear un PL en oracle y que este dentro de Packages ???&#8230;</title>
		<link>http://www.serunix.com/2009/06/24/como-crear-un-pl-en-oracle</link>
		<comments>http://www.serunix.com/2009/06/24/como-crear-un-pl-en-oracle#comments</comments>
		<pubDate>Wed, 24 Jun 2009 06:57:17 +0000</pubDate>
		<dc:creator>sergio</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.serunix.com/?p=375</guid>
		<description><![CDATA[Si queremos crear un PL que se encuentre dentro de Packages sólo hay que crearlo de la siguiente manera:
1.-  como nombre tendrá &#8220;BOOKSDEL_PKG&#8220;&#8230;

1
2
3
4
5
CREATE OR REPLACE package BOOKSDEL_PKG AS
&#160;
  PROCEDURE  delete_book(IDBOOK NUMBER);
&#160;
end BOOKSDEL_PKG;

2.- y creamos el PL de la siguiente forma (body):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE OR REPLACE PACKAGE BODY booksdel_pkg
AS
   PROCEDURE delete_book (idbook NUMBER)
 [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos crear un PL que se encuentre dentro de <em>Packages</em> sólo hay que crearlo de la siguiente manera:</p>
<p>1.-  como nombre tendrá &#8220;<em>BOOKSDEL_PKG</em>&#8220;&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;">CREATE OR REPLACE package BOOKSDEL_PKG AS
&nbsp;
  PROCEDURE  delete_book(IDBOOK NUMBER);
&nbsp;
end BOOKSDEL_PKG;</pre></td></tr></table></div>

<p>2.- y creamos el PL de la siguiente forma (body):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;">CREATE OR REPLACE PACKAGE BODY booksdel_pkg
AS
   PROCEDURE delete_book (idbook NUMBER)
   IS
      CURSOR bk
      IS
         ..
&nbsp;
   BEGIN
   	.
	.
	.	  
      COMMIT;
   EXCEPTION
     .
     .
     .
   END delete_book;
END booksdel_pkg;</pre></td></tr></table></div>

<p>y eso sería todo lo que se tiene que hacer!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.serunix.com/2009/06/24/como-crear-un-pl-en-oracle/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ejecutar un PL en Oracle desde Java y que  muestre una posible exception para que la aplicación no continué&#8230;</title>
		<link>http://www.serunix.com/2009/06/02/ejecutar-un-pl-en-oracle-desde-java-y-que-muestre-una-posible-exeception-para-que-la-aplicacion-no-continue</link>
		<comments>http://www.serunix.com/2009/06/02/ejecutar-un-pl-en-oracle-desde-java-y-que-muestre-una-posible-exeception-para-que-la-aplicacion-no-continue#comments</comments>
		<pubDate>Tue, 02 Jun 2009 12:41:02 +0000</pubDate>
		<dc:creator>sergio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.serunix.com/?p=371</guid>
		<description><![CDATA[Si quieres  manejar la excepción de un posible error y que la maneje Java.. solo hay que agregar la siguiente linea &#8220;RAISE_APPLICATION_ERROR&#8221; y  además  Oracle nos permite personal izar nuestros errores&#8230; 

CREATE OR REPLACE PACKAGE BODY delete_pkg
AS
   PROCEDURE delete_table (vbook NUMBER)
   IS
     .
  [...]]]></description>
			<content:encoded><![CDATA[<p>Si quieres  manejar la excepción de un posible error y que la maneje Java.. solo hay que agregar la siguiente linea &#8220;<em>RAISE_APPLICATION_ERROR</em>&#8221; y  además  Oracle nos permite personal izar nuestros errores&#8230; </p>
<pre lang="" line="1">
CREATE OR REPLACE PACKAGE BODY delete_pkg
AS
   PROCEDURE delete_table (vbook NUMBER)
   IS
     .
     .
     .
   BEGIN
     .
     .
     .
     .
     COMMIT;
   EXCEPTION
      WHEN OTHERS
      THEN
         DBMS_OUTPUT.put_line (SQLERR);
	 RAISE_APPLICATION_ERROR(-20001,SQLERR);
   END delete_table;
END delete_pkg;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.serunix.com/2009/06/02/ejecutar-un-pl-en-oracle-desde-java-y-que-muestre-una-posible-exeception-para-que-la-aplicacion-no-continue/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>en Oracle, NO se puede hacer un ALTER TABLE ADD&#8230; AFTER &#8230;!!!</title>
		<link>http://www.serunix.com/2009/03/25/en-oracle-no-se-puede-hacer-un-alter-table-add-after</link>
		<comments>http://www.serunix.com/2009/03/25/en-oracle-no-se-puede-hacer-un-alter-table-add-after#comments</comments>
		<pubDate>Wed, 25 Mar 2009 22:52:12 +0000</pubDate>
		<dc:creator>sergio</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.serunix.com/?p=279</guid>
		<description><![CDATA[Así es, en Oracle NO se puede crear una columna después/antes que otra, por ejemplo si tuviéramos la siguiente tabla:

CREARTE TABLE Tlibros(
 idlibro NUMBER,
 titulo VARCHAR2(100),
 edicion  VARCHAR2(100)
)

y quisiéramos agregar la columna editorial entre titulo y edición&#8230; no se podría ya que en las opciones para agregar una columna no se puede utilizar AFTER&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Así es, en Oracle <strong>NO</strong> se puede crear una columna después/antes que otra, por ejemplo si tuviéramos la siguiente tabla:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">CREARTE TABLE Tlibros(
 idlibro NUMBER,
 titulo VARCHAR2(100),
 edicion  VARCHAR2(100)
)</pre></div></div>

<p>y quisiéramos agregar la columna editorial entre titulo y edición&#8230; no se podría ya que en las opciones para agregar una columna no se puede utilizar AFTER&#8230; por lo cual agregaría la columna al final de las columnas. por ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">ALTER TABLE Tlibros ADD edicion VARCHAR2(100)</pre></div></div>

<p>En cambio MySQL permite utilizar la opción AFTER. Un ejemplo</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">ALTER TABLE Tlibros ADD COLUMN editorial VARCHAR(60) AFTER edicion;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.serunix.com/2009/03/25/en-oracle-no-se-puede-hacer-un-alter-table-add-after/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
