<?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>sinistral.sourcery &#187; Databases</title>
	<atom:link href="http://tierseven.net/denizens/marc/blog/category/db/feed/" rel="self" type="application/rss+xml" />
	<link>http://tierseven.net/denizens/marc/blog</link>
	<description>bug bait</description>
	<lastBuildDate>Mon, 28 Dec 2009 08:41:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>anonymous (sql) blocks in db2</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/12/28/anonymous-sql-blocks-in-db2/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/12/28/anonymous-sql-blocks-in-db2/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 08:35:21 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=160</guid>
		<description><![CDATA[SQL Server supports the execution of SQL not within the context of a stored procedure or trigger. This is quite a handy feature when debugging as it allows one to write thowaway code without the overhead of declaring a new stored procedure that later has to be dropped. Although it is possible to do this [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Server supports the execution of SQL not within the context of a stored procedure or trigger.  This is quite a handy feature when debugging as it allows one to write thowaway code without the overhead of declaring a new stored procedure that later has to be dropped.</p>
<p>Although it is possible to do this in DB2 too, it isn&#8217;t as transparent as it is in SQL Server (because &#8211; I expect &#8211; DB2 is more ANSI SQL compliant than SQL Server).  The trick is to declare the code that one wants executed in an ATOMIC block:</p>
<pre>
&nbsp;&nbsp;&nbsp;begin atomic
&nbsp;&nbsp;&nbsp;declare var_a char(1);
&nbsp;&nbsp;&nbsp;set var_a = (select ibmreqd from sysibm.sysdummy1);
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;@
</pre>
<p>This may be executed from a <i>Command Center</i> session, or (having connected to a database, and the above dumped into a file called &quot;script.sql&quot;) via the CLP:</p>
<pre>
&nbsp;&nbsp;&nbsp;$ db2 -td@ -vf script.sql
</pre>
<p>Thanks to DHRUV for <a href="http://www.dhruv19280.com/myblog/?p=33">a detailed post</a> on the subject.</p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/12/28/anonymous-sql-blocks-in-db2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>db2 drop schema &#8230; please!</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/11/26/db2-drop-schema-please/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/11/26/db2-drop-schema-please/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 12:47:35 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=127</guid>
		<description><![CDATA[The best documented way to drop a schema in DB2 is the &#160;&#160;&#160;db2 "DROP SCHEMA &#60;schema_name&#62; RESTRICT" command. This, however, requires that all objects in the schema have been dropped before DB2 will allow the schema to be dropped. This is somewhat inconvenient for ad-hoc testing and fortunately in DB2 9 one can now use [...]]]></description>
			<content:encoded><![CDATA[<p>The best documented way to drop a schema in DB2 is the</p>
<pre>
&nbsp;&nbsp;&nbsp;db2 "DROP SCHEMA &lt;schema_name&gt; RESTRICT"
</pre>
<p>command.  This, however, requires that all objects in the schema have been dropped before DB2 will allow the schema to be dropped.  This is somewhat inconvenient for ad-hoc testing and fortunately in DB2 9 one can now use the stored procedure <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0022036.htm"><code>admin_drop_schema</code></a>:</p>
<pre>
&nbsp;&nbsp;&nbsp;db2 "call admin_drop_schema('&lt;schema_name&gt;', NULL, 'ERRORSCHEMA', 'ERRORTABLE')
</pre>
<p>Simple enough, but it took me long enough to track this down that I thought it worth posting.</p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/11/26/db2-drop-schema-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>declaring db2 global temporary tables &amp; cursors</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/05/19/declaring-db2-global-temporary-tables-cursors/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/05/19/declaring-db2-global-temporary-tables-cursors/#comments</comments>
		<pubDate>Tue, 19 May 2009 10:15:43 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=88</guid>
		<description><![CDATA[Since v7.1 DB2 LUW (or UDB, if you prefer) has supported session-specific global temporary tables. Once declared, the table may be referenced until the session ends, at which point the rows are deleted and the description is dropped. (See the IBM Infocenter pages for details). The syntax for declaring these tables is, however, a little [...]]]></description>
			<content:encoded><![CDATA[<p>Since v7.1 DB2 LUW (or UDB, if you prefer) has supported session-specific global temporary tables.  Once declared, the table may be referenced until the session ends, at which point the rows are deleted and the description is dropped. (See the <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0003272.htm">IBM Infocenter pages</a> for details).  The syntax for declaring these tables is, however, a little arcane, and I found using them in conjuction with cursor declarations somewhat tricky.</p>
<p>Specifically, if the cursor is opened over the temporary table, the cursor declaration must follow the table declaration.  However, it seems that DB2&#8242;s parser expects only variable declarations to follow the table declaration.  For example, the following code:</p>
<pre>&nbsp;&nbsp;&nbsp;connect to testdb@
&nbsp;&nbsp;&nbsp;set current schema='testschema'@
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;DROP PROCEDURE temp_proc@
&nbsp;&nbsp;&nbsp;CREATE PROCEDURE temp_proc(
&nbsp;&nbsp;&nbsp;      IN input_var CHAR(1))
&nbsp;&nbsp;&nbsp;   LANGUAGE SQL
&nbsp;&nbsp;&nbsp;   DYNAMIC RESULT SETS 1
&nbsp;&nbsp;&nbsp;   CALLED ON NULL INPUT
&nbsp;&nbsp;&nbsp;BEGIN
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;   DECLARE SQLCODE INTEGER DEFAULT 0;
&nbsp;&nbsp;&nbsp;   DECLARE GLOBAL TEMPORARY TABLE t_y_or_n (y_or_n char(1))
&nbsp;&nbsp;&nbsp;      ON COMMIT PRESERVE ROWS NOT LOGGED;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;   DECLARE local_var CHAR(1);
&nbsp;&nbsp;&nbsp;   DECLARE crsr CURSOR WITH RETURN TO CLIENT FOR
&nbsp;&nbsp;&nbsp;      SELECT y_or_n FROM session.t_y_or_n WHERE y_or_n=local_var;
&nbsp;&nbsp;&nbsp;   INSERT INTO session.t_y_or_n
&nbsp;&nbsp;&nbsp;      SELECT ibmreqd FROM sysibm.sysdummy1;
&nbsp;&nbsp;&nbsp;   SET local_var = input_var;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;   OPEN crsr;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;END@
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;CALL temp_proc('Y')@
&nbsp;&nbsp;&nbsp;terminate@</pre>
<p>yields the error:</p>
<p><tt>&nbsp;&nbsp;&nbsp;DB21034E  The command was processed as an SQL statement because it<br />
&nbsp;&nbsp;&nbsp;was not a valid Command Line Processor command.  During SQL<br />
&nbsp;&nbsp;&nbsp;processing it returned:<br />
&nbsp;&nbsp;&nbsp;SQL0104N  An unexpected token "&lt;variable declaration&gt;" was<br />
&nbsp;&nbsp;&nbsp;found following "".  Expected tokens may include:  "&lt;SQL statement&gt;".<br />
&nbsp;&nbsp;&nbsp;LINE NUMBER=12.<br />
&nbsp;&nbsp;&nbsp;SQLSTATE=42601</tt></p>
<p>The solution seems to be to put the table declaration and the the cursor declaration in different scope.  This is achieved using labels, i.e.:</p>
<pre>&nbsp;&nbsp;&nbsp;connect to testdb@
&nbsp;&nbsp;&nbsp;set current schema='testschema'@
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;DROP PROCEDURE temp_proc@
&nbsp;&nbsp;&nbsp;CREATE PROCEDURE temp_proc(
&nbsp;&nbsp;&nbsp;      IN input_var CHAR(1))
&nbsp;&nbsp;&nbsp;   LANGUAGE SQL
&nbsp;&nbsp;&nbsp;   DYNAMIC RESULT SETS 1
&nbsp;&nbsp;&nbsp;   CALLED ON NULL INPUT
&nbsp;&nbsp;&nbsp;P1 : BEGIN
&nbsp;&nbsp;&nbsp;   DECLARE SQLCODE INTEGER DEFAULT 0;
&nbsp;&nbsp;&nbsp;   DECLARE GLOBAL TEMPORARY TABLE t_y_or_n (y_or_n char(1))
&nbsp;&nbsp;&nbsp;      ON COMMIT PRESERVE ROWS NOT LOGGED;
&nbsp;&nbsp;&nbsp;   P2 : BEGIN
&nbsp;&nbsp;&nbsp;      DECLARE local_var CHAR(1);
&nbsp;&nbsp;&nbsp;      DECLARE crsr CURSOR WITH RETURN TO CLIENT FOR
&nbsp;&nbsp;&nbsp;         SELECT y_or_n FROM session.t_y_or_n WHERE y_or_n=local_var;
&nbsp;&nbsp;&nbsp;      INSERT INTO session.t_y_or_n
&nbsp;&nbsp;&nbsp;         SELECT ibmreqd FROM sysibm.sysdummy1;
&nbsp;&nbsp;&nbsp;      SET local_var = input_var;
&nbsp;&nbsp;&nbsp;      OPEN crsr;
&nbsp;&nbsp;&nbsp;   END P2;
&nbsp;&nbsp;&nbsp;END P1@
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;CALL temp_proc('Y')@
&nbsp;&nbsp;&nbsp;terminate@</pre>
<p>The above code can be run by copying it into a file and executing it with:</p>
<pre>&nbsp;&nbsp;&nbsp;db2 -td@ -v -f &lt;script_name&gt;</pre>
<p>Thanks to <a href="http://forums.devshed.com/member.php?u=201986">nemali</a> on the <a href="http://forums.devshed.com/">Dev Shed forums</a> for <a href="http://forums.devshed.com/db2-development-114/using-global-temporary-table-and-cursor-275200.html">his/her post</a> on the subject.</p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/05/19/declaring-db2-global-temporary-tables-cursors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>retrieving large values without truncation in the DB2 CLP</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/05/18/retrieving-large-values-without-truncation-in-the-db2-clp/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/05/18/retrieving-large-values-without-truncation-in-the-db2-clp/#comments</comments>
		<pubDate>Mon, 18 May 2009 09:21:57 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=72</guid>
		<description><![CDATA[The DB2 command-line processor (CLP; invoked from a shell with the command db2) truncates output greater than 8K. One way to retrieve the full text of a column value that exceeds that size (e.g. CLOB data) is to use the export command. For example, having connected a database and set the current schema, one could [...]]]></description>
			<content:encoded><![CDATA[<p>The DB2 command-line processor (CLP; invoked from a shell with the command <tt>db2</tt>) truncates output greater than 8K.  One way to retrieve the full text of a column value that exceeds that size (e.g. CLOB data) is to use the <tt>export</tt> command.  For example, having connected a database and set the current schema, one could use a statement of the following form from within the <tt>db2</tt> CLP (note that the &quot;<tt>db2 =&gt;</tt>&quot; is the CLP prompt):
<pre>&nbsp;&nbsp;&nbsp;db2 =&gt; export to result.del of del modified by chardel'' coldel; decpt, select &lt;column&gt; from &lt;table&gt;</pre>
<p>The &quot;<tt>of del</tt>&quot; indicates that the output file should contain delimited data.  The delimiters used, and how they are applied, is defined by the <tt>modified by</tt> clause and its qualifiers &quot;<tt>chardel</tt>&quot; and &quot;<tt>coldel</tt>&quot;;</p>
<ul>
<li><tt>chardel</tt>: defines the character that will be used to delimit character data; in the above example a single quote (<tt>'</tt>) is used.</li>
<li><tt>coldel</tt>: defines the character that will be used to delimit columns; in the above example a semi-colon (<tt>;</tt>) is used.</li>
</ul>
<p>The file produced by this statement would look something like:</p>
<pre>&nbsp;&nbsp;&nbsp;1;'foo';256;'KB'
&nbsp;&nbsp;&nbsp;2;'bar';512;'KB'
&nbsp;&nbsp;&nbsp;3;'baz';1;'MB'</pre>
<p>Note, however, that if the column value that is being exported is longer than the default character column that can be exported, <tt>export</tt> will truncate the data and issue the warning:</p>
<p><tt>SQL3132W  The character data in column "DATA" will be truncated to size "32700"</tt></p>
<p>To work around this, the <tt>lobfile</tt> parameter may be used to specify a base prefix for the files that will be used to store LOB data without truncation.  The form of the command then becomes:</p>
<pre>&nbsp;&nbsp;&nbsp;export to result.del of del lobfile result_lob_ modified by chardel'' coldel; decpt, select data from debug_data</pre>
<p>For more information please refer the IBM Infocenter pages that describe the <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0004567.htm"><tt>EXPORT</tt> command</a>, and its <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0011046.htm">file-type modifiers</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/05/18/retrieving-large-values-without-truncation-in-the-db2-clp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>using cursors as OUT parameters in PL/SQL stored procedures</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/04/07/using-cursors-as-out-parameters-in-plsql-stored-procedures/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/04/07/using-cursors-as-out-parameters-in-plsql-stored-procedures/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 09:28:56 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=64</guid>
		<description><![CDATA[The system that I&#8217;ve been working on uses as a standard stored procedures that declare an OUT parameter through which a result cursor is &#8220;returned&#8221; to the caller. While it is easy enough to call the procedure and process the result set in Java, I occasionally want to call such a procedure from SQL*Plus. To [...]]]></description>
			<content:encoded><![CDATA[<p>The system that I&#8217;ve been working on uses as a standard stored procedures that declare an OUT parameter through which a result cursor is &#8220;returned&#8221; to the caller.  While it is easy enough to call the procedure and process the result set in Java, I occasionally want to call such a procedure from SQL*Plus.  To do this, one must bind a suitably typed variable to the procedure&#8217;s output parameter, for example:<br />
<code><br />
&nbsp;&nbsp;&nbsp;SQL&gt; var proc_res refcursor;<br />
&nbsp;&nbsp;&nbsp;SQL&gt; exec foo.get_stuff (:proc_res);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;PL/SQL procedure successfully completed.<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;SQL&gt; print proc_res;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;DUM<br />
&nbsp;&nbsp;&nbsp;---<br />
&nbsp;&nbsp;&nbsp;X<br />
</code></p>
<p>In this example package <code>foo</code> and procedure <code>get_stuff</code> are declared as:<br />
<code><br />
&nbsp;&nbsp;&nbsp;SQL&gt; create or replace package foo is<br />
&nbsp;&nbsp;&nbsp;  2  type cursor_out is ref cursor;<br />
&nbsp;&nbsp;&nbsp;  3  procedure get_stuff (results out cursor_out);<br />
&nbsp;&nbsp;&nbsp;  4  end foo;<br />
&nbsp;&nbsp;&nbsp;  5  /<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;Package created.<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;SQL&gt;<br />
&nbsp;&nbsp;&nbsp;SQL&gt; create or replace package body foo as<br />
&nbsp;&nbsp;&nbsp;  2  procedure get_stuff (results out cursor_out) is<br />
&nbsp;&nbsp;&nbsp;  3  c1 cursor_out;<br />
&nbsp;&nbsp;&nbsp;  4  begin<br />
&nbsp;&nbsp;&nbsp;  5     open results for select * from dual;<br />
&nbsp;&nbsp;&nbsp;  6  end get_stuff;<br />
&nbsp;&nbsp;&nbsp;  7<br />
&nbsp;&nbsp;&nbsp;  8  end foo;<br />
&nbsp;&nbsp;&nbsp;  9  /<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;Package body created.<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/04/07/using-cursors-as-out-parameters-in-plsql-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>printing PL/SQL debug output in SQL*Plus</title>
		<link>http://tierseven.net/denizens/marc/blog/2009/04/07/printing-plsql-debug-output-in-sqlplus/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2009/04/07/printing-plsql-debug-output-in-sqlplus/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 07:26:54 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/?p=60</guid>
		<description><![CDATA[Oracle Database provides the put_line procedure (in the dbms_output package) to print statements. This output is not, however, displayed by default in SQL*Plus; it must be enabled using: &#160;&#160;&#160;SQL&#62; set echo on &#160;&#160;&#160;SQL&#62; set serveroutput on put_line can then be used as follows: &#160;&#160;&#160;SQL&#62; declare &#160;&#160;&#160; 2 x number; &#160;&#160;&#160; 3 begin &#160;&#160;&#160; 4 x [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle Database provides the <code>put_line</code> procedure (in the <code>dbms_output</code> package) to print statements.  This output is not, however, displayed by default in SQL*Plus; it must be enabled using:<br />
<code><br />
&nbsp;&nbsp;&nbsp;SQL&gt; set echo on<br />
&nbsp;&nbsp;&nbsp;SQL&gt; set serveroutput on<br />
</code><br />
<code>put_line</code> can then be used as follows:<br />
<code><br />
&nbsp;&nbsp;&nbsp;SQL&gt; declare<br />
&nbsp;&nbsp;&nbsp;  2  x number;<br />
&nbsp;&nbsp;&nbsp;  3  begin<br />
&nbsp;&nbsp;&nbsp;  4  x := 3;<br />
&nbsp;&nbsp;&nbsp;  5  dbms_output.put_line('x is ' || x);<br />
&nbsp;&nbsp;&nbsp;  6  end;<br />
&nbsp;&nbsp;&nbsp;  7  /<br />
&nbsp;&nbsp;&nbsp;x is 3<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;PL/SQL procedure successfully completed.<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;SQL&gt;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2009/04/07/printing-plsql-debug-output-in-sqlplus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle database XE confined</title>
		<link>http://tierseven.net/denizens/marc/blog/2008/11/28/oracle-database-xe-confined/</link>
		<comments>http://tierseven.net/denizens/marc/blog/2008/11/28/oracle-database-xe-confined/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 07:24:30 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://tierseven.net/denizens/marc/blog/2008/11/28/25/</guid>
		<description><![CDATA[I am currently empoyed to develop/maintain commercial software that is deployed on Oracle Database Enterprise Edition. However, to streamline my day-to-day activities, I&#8217;m using Oracle Database Express Edition (XE) in development. Being somewhat lighter than its peer editions, XE is better suited to a desktop environment and I&#8217;ve managed to get it running in a [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently empoyed to develop/maintain commercial software that is deployed on Oracle Database Enterprise Edition.  However, to streamline my day-to-day activities, I&#8217;m using Oracle Database Express Edition (XE) in development.</p>
<p>Being somewhat lighter than its peer editions, XE is better suited to a desktop environment and I&#8217;ve managed to get it running in a memory constrained <a href="http://vmware.com/">VMware</a> Virtual Machine running <a href="http://ubuntu.com/">Ubuntu GNU/Linux</a> 8.04 (Hardy Heron) with 768mb RAM.  It is not, however, what one would call a light-weight database and does require a few tweaks to get it to compensate for an environment where resources are scarce.</p>
<p>I&#8217;ve started a <a href="http://tierseven.net/wiki/index.php/Oracle_Database_XE_Configuration">wiki page</a> that details the various problems that I have encountered, and the solutions that I&#8217;ve found.  As I encounter issues I&#8217;ll post updates in the form of comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://tierseven.net/denizens/marc/blog/2008/11/28/oracle-database-xe-confined/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

