<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4006424101263710264</atom:id><lastBuildDate>Mon, 16 Sep 2024 00:45:27 +0000</lastBuildDate><category>enterprisedb</category><category>oracle</category><category>postgres</category><category>database</category><category>postgresql</category><category>webinar</category><category>advanced server</category><category>book</category><category>compatibility</category><category>edb</category><category>open source</category><category>postgres plus</category><category>compatible</category><category>gridsql</category><category>linuxworld</category><category>migration</category><category>partners</category><category>tutorial</category><category>8.3</category><category>enterprisedb express</category><category>install</category><category>mysql</category><category>wavemaker</category><category>.net</category><category>PPASS</category><category>apatar</category><category>audio</category><category>author</category><category>award</category><category>beta</category><category>bind variables</category><category>c#</category><category>career</category><category>ceo</category><category>coding</category><category>compiere</category><category>contest</category><category>crypto</category><category>cto</category><category>d</category><category>data integration</category><category>dbms_alert</category><category>dbms_pipe</category><category>development</category><category>download</category><category>edbx</category><category>encryption</category><category>execute</category><category>express</category><category>features</category><category>gis</category><category>gui</category><category>hibernate</category><category>ibm</category><category>interview</category><category>java</category><category>job</category><category>leadership</category><category>learn</category><category>license</category><category>published</category><category>rac</category><category>release</category><category>roi</category><category>support</category><category>user group</category><category>video</category><title>EnterpriseDB News</title><description>For more current EnterpriseDB information, browse over to http://postgresqlnews.blogspot.com</description><link>http://enterprisedbnews.blogspot.com/</link><managingEditor>noreply@blogger.com (LewisC)</managingEditor><generator>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-5682557251256327471</guid><pubDate>Sat, 19 Jul 2008 17:58:00 +0000</pubDate><atom:updated>2008-07-20T06:07:14.323-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">career</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">job</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">postgresql</category><category domain="http://www.blogger.com/atom/ns#">PPASS</category><title>Not working for EDB anymore</title><description>&lt;p&gt;Well, &lt;a href=&quot;http://it.toolbox.com/blogs/oracle-guide/for-sale-one-slightly-used-database-architect-25989&quot;&gt;I am no longer working for EnterpriseDB&lt;/a&gt;. It was fun while it lasted but it&#39;s over so I am moving on. I found a new job, locally. It&#39;s pure Oracle and I will get to use Real Application Clusters in a production environment. That&#39;s something I haven&#39;t done in the past so I am looking forward to it. It&#39;s also a java, .net and Oracle Forms shop and they are doing some interesting things with telecommunications and SMS.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;From now on, I will only need to travel for conferences. No more trips to New Jersey. That&#39;s kind of a drag as I was almost at elite status on Continental. I have two more conferences this year and it just might be enough. I may even take a trip on my own just to get the miles. One of the trips is from Tampa to San Francisco, and back, so that will get me very close. The other is to Virginia and back.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I am a database geek and I will be keeping an eye on EDB just as I did in the past. I will probably post &lt;a href=&quot;http://enterprisedbnews.blogspot.com/&quot;&gt;here at the EDB blog&lt;/a&gt; about as frequently as I have been (not often). Or, I may let this one die and just do any EDB posting on my &lt;a href=&quot;http://postgresqldbnews.blogspot.com/&quot;&gt;postgres blog&lt;/a&gt;. That actually makes the most sense. I think I will cross post this one there and make this my last dedicated posting on this blog.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I also plan to keep up with Postgres, for personal knowledge, &lt;a href=&quot;http://mysqldbnews.blogspot.com/&quot;&gt;just as I do MySQL&lt;/a&gt;. I actually want to install GridSQL and see how it performs for a variety of different applications.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;On the upside, I can now call EnterpriseDB Postgres Plus Advanced Server, PP AS, without marketing having fit. ;-) Heck, if I think of it as Advanced Server Software, I can call it the PP ASS. heh But I would never do that.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, I can guess I can close out this blog now. Later.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;/p&gt;&lt;br /&gt;&lt;p xmlns=&quot;&quot; class=&quot;zoundry_raven_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://www.technorati.com/tag/PPASS&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;PPASS&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/career&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;career&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/job&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;job&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/07/not-working-for-edb-anymore.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-4001375248746314553</guid><pubDate>Wed, 04 Jun 2008 13:59:00 +0000</pubDate><atom:updated>2008-06-04T06:59:08.559-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ceo</category><category domain="http://www.blogger.com/atom/ns#">database</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">execute</category><title>EnterpriseDB Gets a New CEO</title><description>&lt;p&gt;LewisC&#39;s &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide&quot;&gt;An Expert&#39;s Guide To Oracle Technology&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.enterprisedb.com/about/news_events/press_releases/2008_16.do&quot;&gt;Looks like I have a new boss.&lt;/a&gt; Actually, it looks like my boss&#39;s boss has a new boss. ;-)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I&#39;d like to personally welcome Ed Boyajian to EnterpriseDB. Looks like he has quite a bit of experience with OSS and monetizing software solutions. He&#39;s been an executive at &lt;a href=&quot;http://www.redhat.com/?s_kwcid=redhat|1359291081&quot;&gt;Redhat&lt;/a&gt; for a long time. 6 years in his last position but in many other positions before that.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We (EnterpriseDB employees) have known this was coming for a while now. I knew Andy and the board were looking when I was hired. I just now learned the name of the chosen, though. It&#39;s always interesting in a company when executive leadership changes hands.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I like &lt;a href=&quot;http://andyastor.blogspot.com/&quot;&gt;Andy&lt;/a&gt; (Astor, the ex-CEO) and I&#39;m glad he&#39;s staying as the new executive VP of Business Development. I believe that is where his strength (i.e. past experience) lies.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I don&#39;t like to touch too much on people or activities where I work. Makes me kind of uncomfortable discussing what is normally private stuff. This is newsworthy though. Anyway, I&#39;ll leave this with a quote from the new CEO:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&quot;EnterpriseDB is the worldwide leader in bringing the open source Postgres database to enterprises and developers,&quot; said Boyajian. &quot;There is a growing gap between the expensive proprietary database products available today and the entry-level open source alternatives. The Postgres Plus product family fills that gap beautifully. The Postgres open source community is active and talented, and the company has an experienced and enthusiastic team and a compelling roadmap for the future. I am thrilled to have this opportunity to lead EnterpriseDB in its next phase of growth and success.&quot;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Exciting times ahead?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;br /&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p xmlns=&quot;&quot; class=&quot;zoundry_raven_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Del.icio.us&lt;/span&gt; : &lt;a href=&quot;http://del.icio.us/tag/ceo&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;ceo&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/database&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;database&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/enterprisedb&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/execute&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;execute&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/06/enterprisedb-gets-new-ceo.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-3202874783764262346</guid><pubDate>Thu, 29 May 2008 13:13:00 +0000</pubDate><atom:updated>2008-05-29T06:13:25.583-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">8.3</category><category domain="http://www.blogger.com/atom/ns#">advanced server</category><category domain="http://www.blogger.com/atom/ns#">database</category><category domain="http://www.blogger.com/atom/ns#">edb</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">gui</category><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">partners</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">postgres plus</category><category domain="http://www.blogger.com/atom/ns#">wavemaker</category><title>Wavemaker Provides EnterpriseDB Support</title><description>&lt;p&gt;&lt;a href=&quot;http://enterprisedbnews.blogspot.com/&quot;&gt;EnterpriseDB News at Blogspot&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Chris Keene, the CEO for &lt;a href=&quot;http://wavemaker.com/&quot;&gt;Wavemaker&lt;/a&gt; just blogged that combining &lt;a href=&quot;http://www.keeneview.com/&quot;&gt;Wavemaker and EnterpriseDB just got easier&lt;/a&gt;. Wavemaker has a new version that has out of the box support for both Postgres and EnterpriseDB.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I wrote a couple of weeks ago about &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/wavemaker-training-day-1-24673&quot;&gt;my first day of Wavemaker training&lt;/a&gt;. I still haven&#39;t found time to start day two but now that Wavemaker supports EnterpriseDB, I&#39;ll probably redo day 1 using &lt;a href=&quot;http://www.enterprisedb.com/products/postgres_plus_as.do&quot;&gt;Advanced Server&lt;/a&gt; instead of MySQL. I could have done it before since it already supported Postgres and EnterpriseDB via a manual configuration. But now I&#39;ll want to see how easy it is with the automatic support.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you want a little bit more info on Wavemaker, I also posted &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/making-waves-with-wavemaker-24283&quot;&gt;about my first look with it&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Wavemaker is an open source AJAX GUI builder for almost any relational database. You can get it, for free, &lt;a href=&quot;http://www.wavemaker.com/downloads/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;/p&gt;&lt;br /&gt;&lt;p xmlns=&quot;&quot; class=&quot;zoundry_raven_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://www.technorati.com/tag/database&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;database&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/enterprisedb&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/gui&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;gui&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/open+source&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;open source&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/postgres&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;postgres&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/wavemaker&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;wavemaker&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/05/wavemaker-provides-enterprisedb-support.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-5776248342968387898</guid><pubDate>Tue, 27 May 2008 13:33:00 +0000</pubDate><atom:updated>2008-05-27T06:40:41.229-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">compatibility</category><category domain="http://www.blogger.com/atom/ns#">compatible</category><category domain="http://www.blogger.com/atom/ns#">crypto</category><category domain="http://www.blogger.com/atom/ns#">database</category><category domain="http://www.blogger.com/atom/ns#">edb</category><category domain="http://www.blogger.com/atom/ns#">encryption</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Learn EDB:  Basic Encryption</title><description>&lt;p&gt;LewisC&#39;s &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide&quot;&gt;An Expert&#39;s Guide To Oracle Technology&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;An ITToolbox user recently asked a question on the &lt;a href=&quot;http://database.ittoolbox.com/groups/technical-functional/enterprisedb-l&quot;&gt;EnterpriseDB discussion group&lt;/a&gt;, &lt;a href=&quot;http://database.ittoolbox.com/groups/technical-functional/enterprisedb-l/oracle-equilant-utl_i18nstring_to_raw-in-enterprisedb-2135558&quot;&gt;Oracle equilant UTL_I18N.STRING_TO_RAW IN ENTERPRISEDB&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Basically, Sreenivas asked which functions in &lt;a href=&quot;http://www.enterprisedb.com/products/postgres_plus_as.do&quot;&gt;EnterpriseDB&lt;/a&gt; could be used to implement dbms_crypto, hex_to_raw, string_to_raw, etc. I believe he is using EnterpriseDB Postgres Plus Advanced Server which is the product that gives Oracle Compatibility. The short answer to his question is that right now, there are no compatibility functions for those. The long answer is that you can re-implement that functionality using native PG functionality.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you look at &lt;a href=&quot;http://database.ittoolbox.com/groups/technical-functional/enterprisedb-l/oracle-equilant-utl_i18nstring_to_raw-in-enterprisedb-2135558&quot;&gt;Sreenivas&#39;s message&lt;/a&gt; you can see how his existing code works. I posted a simple example in response which I am reposting below. The PG docs suggest that you use PGP based encryption rather than what they call raw encryption. I think it depends on exactly what you&#39;re doing, personally. Anyway, raw encryption was closer to what Sreenivas was doing so that was what I based my example on.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I&#39;ve used DBMS_CRYPTO in Oracle quite a bit but this is my first use of &lt;a href=&quot;http://www.postgresql.org/docs/8.3/static/pgcrypto.html&quot;&gt;encrypt/decrypt in PG&lt;/a&gt;. If you have any suggestions for improving it, I&#39;d like to hear them.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span id=&quot;intelliTXT&quot;&gt;Hi Sreenivas,&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I saw your post on the edb forum but and planned to write a blog entry on this topic.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span&gt;The thing is that there isn&#39;t a one to one translation in EDB yet. The easiest thing is to rewrite your procedure and use built-ins that are available.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;It is recommended that you use the PGP function in postgres as opposed to the raw encryption functions for better security. However, raw encryption more closely matches what you are trying to do. Below is an example of using raw encryption with AES.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;You don&#39;t need to convert to hex as you&#39;ll be using bytea which is easily converted from and to a string. If you really need international support, check out the pg decode function (which is different from Oracle&#39;s decode). http://www.postgresql.org/docs/current/static/funct ions-string.html&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Here is a very simple example that you can use to build your procedure:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;declare&lt;br /&gt;&lt;br /&gt;  original_data text := &#39;I am going to be encrypted&#39;;&lt;br /&gt;  data bytea;&lt;br /&gt;  cipher bytea;&lt;br /&gt;  crypto_type text;&lt;br /&gt;  encrypted_data bytea;&lt;br /&gt;  final_string text;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;  -- conversion to bytea, could use cast too&lt;br /&gt;  data := original_data;&lt;br /&gt;&lt;br /&gt;  --set cipher key&lt;br /&gt;  cipher := &#39;not a strong key, use pgp instead&#39;;&lt;br /&gt;&lt;br /&gt;  -- select type: aes or blowfish (bf)&lt;br /&gt;  crypto_type := &#39;aes&#39;;&lt;br /&gt;&lt;br /&gt;  -- encrypt the data&lt;br /&gt;  select encrypt(data, cipher, crypto_type) into encrypted_data;&lt;br /&gt;&lt;br /&gt;  dbms_output.put_line(&#39;Encrypted: &#39; || encrypted_data );&lt;br /&gt;&lt;br /&gt;  -- decrypt the data &lt;br /&gt;  select decrypt(encrypted_data, cipher, crypto_type) into final_string;&lt;br /&gt;  &lt;br /&gt;  dbms_output.put_line(&#39;Decrypted: &#39; || final_string );&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Hope this helps,&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;/p&gt;&lt;br /&gt;&lt;p xmlns=&quot;&quot; class=&quot;zoundry_raven_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Del.icio.us&lt;/span&gt; : &lt;a href=&quot;http://del.icio.us/tag/crypto&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;crypto&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/database&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;database&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/encryption&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;encryption&lt;/a&gt;, &lt;a href=&quot;http://del.icio.us/tag/postgres&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;postgres&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/05/learn-edb-basic-encryption.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-3025038791106636323</guid><pubDate>Thu, 15 May 2008 13:17:00 +0000</pubDate><atom:updated>2008-05-15T06:17:35.380-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">hibernate</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">mysql</category><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">partners</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><category domain="http://www.blogger.com/atom/ns#">wavemaker</category><title>Wavemaker Training Day 1</title><description>&lt;p&gt;LewisC&#39;s &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide&quot;&gt;An Expert&#39;s Guide To Oracle Technology&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I mentioned the other day that I was playing with a new GUI builder from an EnterpriseDB partner, &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/making-waves-with-wavemaker-24283&quot;&gt;Wavemaker&lt;/a&gt;. Wavemaker, in addition to providing the software, &lt;a href=&quot;http://dev.wavemaker.com/forums/files/32training/3.2_training_ppts.zip&quot;&gt;provides some training&lt;/a&gt; that is downloadable from the web site.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://dev.wavemaker.com/forums/files/32training/3.2_training_ppts.zip&quot;&gt;This training&lt;/a&gt; is a two day basics course in powerpoint format. I would guess that this is what they use for instructor led training and they just made this available to the public. Anyway, I decided to see how good the training was which in turn kind of tells me how easy wavemaker is to learn.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Day 1 includes 8 powerpoint presentations:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Introduction&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wavemaker Architecture&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wavemaker Installation&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wavemaker Studio Overview&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Page Designer Basics&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wavemaker Data Model&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Service Components&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Data Widgets&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Seeing as how I was already making some simple pages with the tool, I blew through the intro, the architecture and installation. It&#39;s interesting stuff, though.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I snagged a screenshot of the wavemaker runtime from the powerpoint presentation. You can get all the details if you download the training zip file.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/lewisc/2484264094/&quot; title=&quot;wavemakerarch by LewisCunningham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3163/2484264094_a3e3bb2049.jpg&quot; alt=&quot;wavemakerarch&quot; height=&quot;373&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can see the explicit separation of UI from logic from data. JSON is the middle tier communication and hibernate accesses your data. You don&#39;t have to write any of this logic. Wavemaker Studio generates all of this for you.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Interesting in this architecture is that everything that can provide data is treated as a service. More on that below.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I was able to finish the Wavemaker Studio Overview and Page Designer Basics presentations with just a little effort. I hit some difficult parts and the powerpoint doesn&#39;t have a tremendous amount of text but the tool is easy enough to use that I was to struggle through and get it completed. The training builds an application and each section builds on the last section.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When I go to the Datamodel stuff I was completely lost. The training said to use the sample database but it didn&#39;t have any description for how to get it or if it was already loaded. It had no information about how to connect or anything.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I did a search on the Wavemaker page and realized I had a duh moment. Directly below the powerpoint zip that I downloaded are several other files, including:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://dev.wavemaker.com/forums/files/32training/32training_sql.zip&quot;&gt;Download the Supporting MySQL Script&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://dev.wavemaker.com/forums/files/32training/32Exercises.zip&quot;&gt;Download the Training Exercise Book&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://dev.wavemaker.com/forums/files/32training/logo_wavemaker.gif&quot;&gt;Download the Supporting Logo.gif File&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Duh. The supporting MySQL script creates the sample database. The training exercise book has all of the text that I noticed was missing from the powerpoint. Every step in the exercises is detailed and explained. I felt like Patrick on Spongebob. ;-)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;BUT, even though I didn&#39;t have the text, I was able to use the studio and create some basic screens in the first exercises. That either means I&#39;m smart or the tool is easy to use. I&#39;ll leave it for you to decide which it is.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Using my newly found instructions, I loaded up my sample database. I already had MySQL installed so it was just a matter of running the script. That went flawlessly and I finished that lesson easily.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The next lesson was Service Components. Here is something that I didn&#39;t think was all that big of a deal at first but it turns out to be a very nice architectural decision. When I created my data model, it automatically turned that into a series of services. I didn&#39;t really see the need for the extra step. However, a web service is a service. A java class is a service. A javascript can be a service. Etc.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What that means is that the data interface is completely separate from the logic to use that data. That means data can be decoupled and changed at any time. You can start with a direct connection to a database and in the future change the service to a web service. No need to change the app. Or what if you have a need for extreme performance? You can build some classes for say, look up tables, and use those as service for certain components. You can always change to a web service or database.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;That&#39;s also nice for disconnected development. You can build your UI without ever seeing your database. As long as you know the model, you can temporarily implement it as a web service or java classes. It&#39;s an interesting concept and I plan to find time to play with it.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The last step was adding some data widgets (like lists and grids). That is also as easy as drag and drop. You go into your properties and attach widgets to services and that&#39;s how you map your data.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At the end of the first day&#39;s worth of training, I ended up with a somewhat complete application (albeit a very simple one). The training really doesn&#39;t take a full day. I think I finished this in a couple of hours and that&#39;s with a lot of playing around with the tool.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/lewisc/2483513873/&quot; title=&quot;first_proj by LewisCunningham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3234/2483513873_7d1c46b4fc.jpg&quot; alt=&quot;first_proj&quot; height=&quot;230&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I didn&#39;t follow all of the instructions as far as making it pretty. This is pretty much just where I dragged and dropped the widgets. It still looks pretty good, though. With some experience, this screen could probably be created in 10 or 15 minutes.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I want to finish day 2 and then I want to convert the sample database from MySQL to EnterpriseDB. I can use the &lt;a href=&quot;http://www.enterprisedb.com/products/postgres_plus_as/migration.do&quot;&gt;EnterpriseDB Migration Studio&lt;/a&gt; to migrate the data and it should be a minimal change for my app. Just choose the new connect string and hibernate dialect and regen the mapping. I&#39;ll keep you posted.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/05/wavemaker-training-day-1.html</link><author>noreply@blogger.com (LewisC)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3163/2484264094_a3e3bb2049_t.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-8044914537680970790</guid><pubDate>Tue, 13 May 2008 01:56:00 +0000</pubDate><atom:updated>2008-05-12T18:56:04.824-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bind variables</category><category domain="http://www.blogger.com/atom/ns#">coding</category><category domain="http://www.blogger.com/atom/ns#">database</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">edb</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">postgres plus</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><title>Bind Variables in Postgres Plus Advanced Server</title><description>&lt;p&gt;Bind variables are used to ease code maintenance and to save memory and processing on the server. When you save memory and processing power, you improve the overall performance of the server. The inner details of how this saves memory has been enumerated in other places on the web. This article is designed to help developers users bind variables when running queries against Postgres Plus Advanced Server.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;What are bind variables?&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The easiest way to think of a bind variable is to consider it just another variable. Instead of it being a variable to be used by your application (and whatever language you happen to be using), think of it as a variable to be used by SQL. Better yet, think of it as a parameter to be used by SQL.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Why do you use parameters in your functions and procedures? Take a look at this very simple SPL procedure:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PROCEDURE start_program IS&lt;br /&gt;BEGIN&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(&#39;Hello World&#39;);&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Now, that procedure works just fine. When the program starts, it calls start_program and it displays a message that the program is starting. Now we decide to add a message just before the program ends:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PROCEDURE end_program IS&lt;br /&gt;BEGIN&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(&#39;Goodbye World&#39;);&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;This works fine technically but violates the rules of modularity in coding. We can parameterize the message so that we can reuse a single procedure and reduce the maintenance workload we have.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PROCEDURE print_message&lt;br /&gt;  (p_message IN VARCHAR2)&lt;br /&gt;IS&lt;br /&gt;BEGIN&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(p_message);&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Now when the program starts, we just call print_message(&#39;Hello World&#39;); and when the program ends, we call print_message(&#39;Goodbye World&#39;);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you&#39;ve been programming any amount of time, the reasons for doing this are more than obvious. You get a large maintenance bonus by maintaining fewer lines of code. You might even get a performance bonus (depending on the language) by using less memory.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, using a bind variable in a database is like using a parameter to a procedure. Only, instead of you doing the maintaining, the database does less maintenance. If you send a bunch of nearly indeitical queries to the server like:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT last_name, first_name&lt;br /&gt;  FROM employees&lt;br /&gt;  WHERE employee_id = 101;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;and&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT last_name, first_name&lt;br /&gt;  FROM employees&lt;br /&gt;  WHERE employee_id = 102;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;There are two queries in memory. If you select 10000 employees (which a batch program might easily do), that&#39;s a whole lot queries that are basically duplicates. The database has to keep track of those and that takes time and memory. The database already has plenty to do keeping track of permissions, users, log files, etc. Why give it more to do?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The way to write a query with bind variables changes depending on the language and tool. The most common that you might see are named variables beginning with a colon (:) or a question mark (?). EnterpriseDB&#39;s SPL uses named variables with a bind for dynamic SQL, as does it&#39;s toolset.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Binds in SPL&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In general, you don&#39;t need to use bind variables in PL/SQL. PL/SQL binds up your variables for you. The only times you need to do it manually are when you are manually parsing SQL using &quot;EXECUTE IMMEDIATE&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If I am using EXECUTE IMMEDIATE, I would write a query like this:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  v_empno emp.empno%TYPE;&lt;br /&gt;  v_query_string VARCHAR2(2001);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  v_name emp.ename%TYPE;&lt;br/&gt;&lt;br /&gt;  v_job emp.job%TYPE;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  v_query_string :=&lt;br /&gt;    &#39;SELECT ename, job&lt;br /&gt;     FROM emp&lt;br /&gt;     WHERE empno = :e_id&#39;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  v_empno := 7876;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  EXECUTE IMMEDIATE v_query_string&lt;br /&gt;    INTO v_name, v_job&lt;br /&gt;    USING v_empno;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(&#39;Name: &#39; || v_name ||&lt;br /&gt;            &#39;, Job: &#39; || v_job );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Connected to EnterpriseDB 8.3.0.12 (localhost:5444/edb) AS enterprisedb&lt;br/&gt;&lt;br /&gt;EDB*Plus: Release 8.3 (Build 14)&lt;br /&gt;Copyright (c) 2008, EnterpriseDB Corporation.  All rights reserved.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;QL&amp;gt; set serveroutput on&lt;br /&gt;SQL&amp;gt; DECLARE&lt;br /&gt;  2    v_empno emp.empno%TYPE;&lt;br /&gt;  3    v_query_string VARCHAR2(2001);&lt;br /&gt;  4    v_name emp.ename%TYPE;  v_job emp.job%TYPE;&lt;br /&gt;  5  BEGIN&lt;br /&gt;  6    v_query_string :=&lt;br /&gt;  7      &#39;SELECT ename, job&lt;br /&gt;  8       FROM emp&lt;br /&gt;  9       WHERE empno = :e_id&#39;;&lt;br /&gt; 10    v_empno := 7876;&lt;br /&gt; 11    EXECUTE IMMEDIATE v_query_string&lt;br /&gt; 12      INTO v_name, v_job&lt;br /&gt; 13      USING v_empno;&lt;br /&gt; 14    DBMS_OUTPUT.PUT_LINE(&#39;Name: &#39; || v_name ||&lt;br /&gt; 15              &#39;, Job: &#39; || v_job );&lt;br /&gt; 16&lt;br /&gt; 17  END;&lt;br /&gt; 18&lt;br /&gt; 19  /&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Name: ADAMS, Job: CLERK&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;EDB-SPL procedure successfully completed.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;You could actually rewrite this several different ways but this example shows the gist of it. Notice that the select list does not include any binds. Advanced Server knows to send the selected columns out as bind variables.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Also, notice that the name of the bind variable (:e_id) does not need to match the SPL variable (v_employee_id). If we do think of bind variables as parameters to SQL, that makes sense. SQL only cares about the data coming in and going back out. The calling program (Advanced Server in this case) is responsible for correctly mapping inputs and outputs. The SQL engine just agrees to send the data is the agreed upon order (left to right).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Binds in Java&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Java is a bit more verbose but most of this code is connecting to the database. The parts in bold are the important parts.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.sql.*;&lt;br /&gt;import oracle.jdbc.pool.*;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class prog2 {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  public static void main (String args []) throws SQLException&lt;br /&gt;  {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        String url = &quot;jdbc:oracle:oci8:@//192.168.1.7:1521/ORCL&quot;;&lt;br /&gt;        OracleDataSource ods = new OracleDataSource();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        ods.setURL(url);&lt;br /&gt;        ods.setUser(&quot;hr&quot;);&lt;br /&gt;        ods.setPassword(&quot;hr&quot;);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        Connection conn = ods.getConnection();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        &lt;strong&gt;PreparedStatement cmd = conn.prepareStatement&lt;br /&gt;              (&quot;SELECT first_name, last_name FROM employees WHERE employee_id = ?&quot;);&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;        cmd.setString(1, &quot;101&quot;);&lt;/strong&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        ResultSet rs = cmd.executeQuery();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        rs.next();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        System.out.println (&quot;Last Name: &quot; +&lt;br /&gt;                      rs.getString(1) +&lt;br /&gt;                      &quot;, First Name: &quot; +&lt;br /&gt;                      rs.getString(2));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        conn.close();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Binds in C#&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;C# is about as verbose as Java but remember that most of this code is C# infrastructure code and creating the connection. The parts in bold is the pertinent code.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data.OracleClient;&lt;br /&gt;&lt;br /&gt;namespace ConsoleApplication1&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            OracleConnection conn = &lt;br /&gt;                      new OracleConnection(&lt;br /&gt;                             &quot;User id=hr;Password=hr;Data Source=remoorcl&quot;&lt;br /&gt;                      );&lt;br /&gt;            conn.Open();&lt;br /&gt;            OracleCommand cmd = new OracleCommand();&lt;br /&gt;            cmd.Connection = conn;&lt;br /&gt;&lt;br /&gt;            &lt;strong&gt;String query = &quot;SELECT last_name, first_name &quot; +&lt;br /&gt;                           &quot;FROM employees &quot; +&lt;br /&gt;                           &quot;WHERE employee_id = :e_id&quot;;&lt;/strong&gt;&lt;br /&gt;            cmd.CommandText = query;&lt;br /&gt;&lt;br /&gt;            &lt;strong&gt;int vEmpId = 101;&lt;br /&gt;            OracleParameter prm = new OracleParameter(&quot;:e_id&quot;, vEmpId);&lt;br /&gt;            cmd.Parameters.Add(prm);&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;            OracleDataReader dataReader = cmd.ExecuteReader();&lt;br /&gt;&lt;br /&gt;            dataReader.Read();&lt;br /&gt;&lt;br /&gt;            Console.WriteLine(&quot;Last Name: &quot; +&lt;br /&gt;                      dataReader.GetOracleString(0) +&lt;br /&gt;                      &quot;, First Name: &quot; +&lt;br /&gt;                      dataReader.GetOracleString(1));&lt;br /&gt;&lt;br /&gt;            conn.Close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This post got much larger than I intended. Anyway, the important part is that it really is not complicated to use bind variables and I think it is much less complicated than trying to string together pieces of text and needing to quote char data and format date data. A bind variable is just a parameter that allows SQL to reuse statements. This helps performance and reduces memory consumption as well as making your code more maintainable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p xmlns=&quot;&quot; class=&quot;zoundry_raven_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://www.technorati.com/tag/bind+variables&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;bind variables&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/coding&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;coding&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/database&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;database&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/development&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;development&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/enterprisedb&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/postgres&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;postgres&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/05/bind-variables-in-postgres-plus.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-6986164458963284986</guid><pubDate>Thu, 08 May 2008 12:59:00 +0000</pubDate><atom:updated>2008-05-08T06:07:53.651-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">advanced server</category><category domain="http://www.blogger.com/atom/ns#">dbms_alert</category><category domain="http://www.blogger.com/atom/ns#">dbms_pipe</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><title>DBMS_PIPE &amp; DBMS_ALERT In EnterpriseDB</title><description>&lt;p&gt;&lt;br /&gt;  LewisC&#39;s &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide&quot;&gt;An Expert&#39;s Guide To Oracle Technology&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The latest release of the EnterpriseDB database, Postgres Plus Advanced Server (AS) 8.3, includes additional Oracle compatibility features. Two of those new features are DBMS_PIPE and DBMS_ALERT. Old Oracle hands will recognize those two packages that are used for interprocess communication. This post is a quick tutorial on using these two features. If you&#39;ve used them in Oracle, you would have no problem using them in AS.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;DBMS_ALERT&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DBMS_ALERT allows you to send an alert to any processes that are registered to hear (listen) that alert. The listening process can register to hear multiple alerts. When any alert comes that matches the listen list, the receiving process will take action. A process can block, i.e. freeze, while waiting for an alert or it can continue processing and periodically poll for alerts. This is accomplished via a timeout parameter.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The first step in alerting is to register to hear an alert. This is done via the register (DBMS_ALERT.REGISTER) process. Once the process is registered it can check for a specific alert (DBMS_ALERT.WAITONE) or it can check for any registered alert (DBMS_ALERT.WAITANY). When a process is no longer interested in the alerts, it can deregister from a single alert (DBMS_ALERT.REMOVE) or it can deregister from all alerts (DBMS_ALERT.REMOVEALL).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To send an alert, a process will call DBMS_ALERT.SIGNAL. This raises the alert and registered listeners are notified.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is a simple example using two EDB*Plus sessions.&lt;br /&gt;&lt;/p&gt;&lt;pre space=&quot;preserve&quot;&gt;SQL&gt; set sqlprompt &quot;Sess1&gt; &quot;&lt;br /&gt;Sess1&gt;&lt;br /&gt;&lt;br /&gt;Sess1&gt; exec dbms_alert.register(&#39;alertme&#39;);&lt;br /&gt;&lt;br /&gt;Sess1&gt; set serveroutput on&lt;br /&gt;Sess1&gt; declare&lt;br /&gt;   2  v_status integer;&lt;br /&gt;   3   v_message varchar2(200);&lt;br /&gt;   4 begin&lt;br /&gt;   5    -- wait for one second and return&lt;br /&gt;   6    dbms_alert.waitone(&#39;alertme&#39;, v_message, v_status, 1);&lt;br /&gt;   7    dbms_output.put_line(&#39;Message: &#39; || v_message || &#39;, Status: &#39; || v_status );&lt;br /&gt;   8  end;&lt;br /&gt;   9  /&lt;br /&gt;   Message: , Status: 1&lt;br /&gt;&lt;/pre&gt;&lt;pre space=&quot;preserve&quot;&gt;    EDB-SPL Procedure successfully completed.&lt;br /&gt;   Sess1&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this case, I had it wait for just a single second. Since I had not sent a message it timed out (status = 1).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now I&#39;ll wait 240 seconds and send a message from a second session.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In session 1:&lt;br /&gt;&lt;/p&gt;&lt;pre space=&quot;preserve&quot;&gt;   Sess1&gt; declare&lt;br /&gt;  2   v_status integer;&lt;br /&gt;  3   v_message varchar2(200);&lt;br /&gt;  4 begin&lt;br /&gt;  5   -- wait for 240 seconds and return&lt;br /&gt;  6   dbms_alert.waitone(&#39;alertme&#39;, v_message, v_status, 240);&lt;br /&gt;  7   dbms_output.put_line(&#39;Message: &#39; || v_message || &#39;, Status: &#39; || v_status );&lt;br /&gt;  8 end;&lt;br /&gt;  9 /&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In session 2:&lt;br /&gt;&lt;/p&gt;&lt;pre space=&quot;preserve&quot;&gt;   SQL&gt; set sqlprompt &quot;Sess2&amp;gt; &quot;&lt;br /&gt;  Sess2&gt; exec dbms_alert.signal(&#39;alertme&#39;, &#39;This is an alert!&#39;);&lt;br /&gt;&lt;br /&gt;  EDB-SPL Procedure successfully completed.&lt;br /&gt;&lt;br /&gt;  Sess2&gt; commit;&lt;br /&gt;&lt;br /&gt;  COMMIT completed.&lt;br /&gt;&lt;br /&gt;  Sess2&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre space=&quot;preserve&quot;&gt;Back in session 1:&lt;br /&gt;&lt;/pre&gt;&lt;pre space=&quot;preserve&quot;&gt;   Message: This is an alert!, Status: 0&lt;br /&gt;&lt;br /&gt;  EDB-SPL Procedure successfully completed.&lt;br /&gt;&lt;br /&gt;  Sess1&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Note the commit. It is required.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;DBMS_PIPE&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DBMS_PIPE also allows you to send data to other sessions in the database. You pack a buffer with a message or messages and then send the message. Unlike an alert, the session listening for the message pulls it off and other sessions will not see it. Think of DBMS_ALERT as a multi consumer queue and DBMS_PIPE as a single consumer queue. That&#39;s not an entirely technically correct analogy but it&#39;s close.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Like an alert, a pipe has a name. With a pipe though, you may have public or private pipes. In Oracle, a public pipe may be read and written to by any session in the database while a private pipe can only be written to and read from a session connected as the same user as the creator. In AS, any session can read any pipe.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A pipe can be created with the DBMS_PIPE.CREATE_PIPE function. If you put a message on a pipe that has not been created using CREATE_PIPE, the database will automatically create an implicit public pipe. An implicit pipe will free up when there are no messages left in the buffer. An explicit pipe will free up only when DBMS_PIPE.REMOVE_PIPE is called.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Another difference from an alert is that a pipe can send data type specific messages. A pipe can send a varchar2, date, number or raw message. You put the message in the buffer via the DBMS_PIPE.PACK_MESSAGE procedure. This procedure also identifies the data type. You pull a message off using DBMS_PIPE.UNPACK_MESSAGE. Once you&#39;ve packed a message on the buffer, you can call DBMS_PIPE.SEND_MESSAGE to send it. Before unpacking, you must call DBMS_PIPE.RECEIVE_MESSAGE. You can put multiple messages in the buffer before sending it.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To determine the data type of a message, you would call DBMS_PIPE.NEXT_ITEM_TYPE in between calls to DBMS_PIPE.UNPACK_MESSAGE. The return value from the NEXT_ITEM_TYPE call is an integer value: 0 = no more data, 9 = number, 11 = varchar2, 13 = date and 23 = raw.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is a very simple example to send a varchar2 and a date message from one session to another. I am not using DBMS_PIPE.CREATE_PIPE so I am creating an implicit public pipe. I am reusing Sess1 and Sess2 sessions from before.&lt;br /&gt;&lt;/p&gt;&lt;pre space=&quot;preserve&quot;&gt;   Sess1&gt; declare&lt;br /&gt;  2    v_status integer;&lt;br /&gt;  3    v_date date;&lt;br /&gt;  4    v_char varchar2(100);&lt;br /&gt;  5  begin&lt;br /&gt;  6    v_date := sysdate; -- sysdate = May 5, 2008&lt;br /&gt;  7    v_char := &#39;This is a char message.&#39;;&lt;br /&gt;  8    dbms_pipe.pack_message(v_char);&lt;br /&gt;  9    dbms_pipe.pack_message(v_date);&lt;br /&gt;  10   v_status := dbms_pipe.send_message(&#39;thepipe&#39;, 0);&lt;br /&gt;  11   dbms_output.put_line(&#39;Status: &#39; || v_status );&lt;br /&gt;  12 end;&lt;br /&gt;  13 /&lt;br /&gt;  Status: 0&lt;br /&gt;&lt;br /&gt;  EDB-SPL Procedure successfully completed.&lt;br /&gt;  Sess1&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre space=&quot;preserve&quot;&gt;   Sess2&gt; declare&lt;br /&gt;  2    v_status integer;&lt;br /&gt;  3    v_date date;&lt;br /&gt;  4    v_char varchar2(100);&lt;br /&gt;  5    v_data_type integer;&lt;br /&gt;  6  begin&lt;br /&gt;  7    v_status := dbms_pipe.receive_message(&#39;thepipe&#39;, 0);&lt;br /&gt;  8    v_data_type := dbms_pipe.next_item_type;&lt;br /&gt;  9    dbms_pipe.unpack_message(v_char);&lt;br /&gt;  10   dbms_output.put_line(&#39;Data Type: &#39; || v_data_type ||&lt;br /&gt;  11   &#39;, Message: &#39; || v_char);&lt;br /&gt;  12   dbms_pipe.unpack_message(v_date);&lt;br /&gt;  13   dbms_output.put_line(&#39;Date: &#39; || to_char(v_date) );&lt;br /&gt;  14 end;&lt;br /&gt;  15 /&lt;br /&gt;  Data Type: 11, Message: This is a char message.&lt;br /&gt;  Date: 05-MAY-08&lt;br /&gt;&lt;br /&gt;  EDB-SPL Procedure successfully completed.&lt;br /&gt;  Sess2&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;These functions are useful when you need them, especially for notifications to applications running outside the database. You can get additional information about these packages and others in the &lt;a href=&quot;http://www.enterprisedb.com/docs/en/8.3/oracompat/Table%20of%20Contents.htm&quot;&gt;EnterpriseDB Oracle Compatibility Guide&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;LewisC&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/05/dbmspipe-dbmsalert-in-enterprisedb.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-7684319317158968595</guid><pubDate>Thu, 24 Apr 2008 12:23:00 +0000</pubDate><atom:updated>2008-04-24T05:29:32.629-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">advanced server</category><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">postgres plus</category><title>Calling a Packaged Procedure via .Net</title><description>&lt;p&gt;Someone recently posted a question in the &lt;a href=&quot;http://forums.enterprisedb.com/forums/list.page&quot;&gt;Postgres Forums&lt;/a&gt; about how to call a package in Advanced Server.  He also had a question about how to call a packaged procedure in a specific schema.&lt;/p&gt;&lt;p&gt;Here is my reply to the question:&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;blockquote&gt;You can&#39;t actually execute packages. You execute the procedures or functions in them. Here is some code to execute a procedure in a package. I am using public as the schema name. If you want to execute a procedure in a user&#39;s schema, just replace public with the user&#39;s name. &lt;/blockquote&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;using System.Data;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;using EnterpriseDB.EDBClient;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;namespace ConsoleApplication2&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            EDBConnection conn =&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;               new EDBConnection(&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                     &quot;Server=localhost;&quot; +&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                     &quot;Port=5444;&quot; +&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                     &quot;User Id=enterprisedb;&quot; +&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                     &quot;Password=enterprisedb;&quot; +&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                     &quot;Database=edb&quot;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            conn.Open();&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            EDBCommand cmd = new EDBCommand();&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.Connection = conn;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            int vEmpId = 7876;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            String query = &quot;public.emp_admin.fire_emp(:e_id)&quot;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.CommandText = query;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.CommandType = CommandType.StoredProcedure;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            EDBParameter prm = new EDBParameter(&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                             &quot;e_id&quot;, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;                             EDBTypes.EDBDbType.Integer);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.Parameters.Add(prm);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.Parameters[0].Value = vEmpId;    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.Prepare();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            cmd.ExecuteNonQuery();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;            conn.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/dotnet&quot; rel=&quot;tag&quot;&gt;.Net&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/04/calling-packaged-procedure-via-net.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-5982139832468179644</guid><pubDate>Wed, 23 Apr 2008 13:47:00 +0000</pubDate><atom:updated>2008-04-23T06:47:42.323-07:00</atom:updated><title>EDB Tip #4:  Database Links in EDB</title><description>&lt;br /&gt;&lt;p&gt;LewisC&#39;s &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide&quot;&gt;An Expert&#39;s Guide To Oracle Technology&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This tip relates to the latest version of &lt;a href=&quot;http://www.enterprisedb.com/products/postgres_plus_as.do&quot;&gt;EnterpriseDB&#39;s Advanced Server (AS) product&lt;/a&gt;. This is the commercially licensed database that provides Oracle compatibility. I have spoken quite a bit &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/enterprisedb-faq-what-does-compatibility-mean-17822&quot;&gt;about what that compatibility entails&lt;/a&gt; but the gist of it is that the compatibility is code compatibility. The latest version of AS offers quite a few new features that I will be writing about over time. Today I am writing about the Oracle compatible db links.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To understand database links in Oracle, read my entry here on ittoolbox, &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/database-links-a-definition-in-plain-english-7023&quot;&gt;Database Links: A Definition in Plain English&lt;/a&gt;. That entry will give you a good overview of what a link is and what Oracle does with links. This is a hugely useful feature. Pulling data from remote databases can be incredibly important to many applications.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;AS provides DDL syntax that is very close to Oracle syntax and DML syntax exactly like Oracle syntax. In addition, you can choose to create links from AS to Oracle or links from AS to other AS instances or even to Postgres instances.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The AS &lt;a href=&quot;http://www.enterprisedb.com/docs/en/8.3/oracompat/EnterpriseDB_OraCompat_EN_8.3-49.htm#P2245_121013&quot;&gt;syntax to create a link&lt;/a&gt;:&lt;/p&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;CREATE [ PUBLIC ] DATABASE LINK &lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;name&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;  CONNECT TO &lt;/span&gt;&lt;em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;rname&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt; IDENTIFIED BY &#39;&lt;/span&gt;&lt;em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;password&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&#39;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;  USING { libpq &#39;host=&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;hostname&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt; port=&lt;/span&gt;&lt;em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;po&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;rt&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;num&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt; dbname=&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;database&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&#39; |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;    [ oci ] &#39;//&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;hostname&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;[:&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;portnum&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;]/&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&lt;em&gt;database&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: &#39;Courier New&#39;&quot;&gt;&#39; }&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Let me break that up just a bit by comparing it to &lt;a href=&quot;http://www.acs.ilstu.edu/docs/Oracle/server.101/b10759/statements_5005.htm&quot;&gt;Oracle&#39;s syntax&lt;/a&gt;:&lt;/p&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;strong&gt;CREATE&lt;/strong&gt; [ &lt;strong&gt;SHARED&lt;/strong&gt; ] [ &lt;strong&gt;PUBLIC&lt;/strong&gt; ] &lt;strong&gt;DATABASE LINK&lt;/strong&gt; dblink&lt;br /&gt;  [ &lt;strong&gt;CONNECT TO&lt;/strong&gt;&lt;br /&gt;    { &lt;strong&gt;CURRENT_USER&lt;/strong&gt;&lt;br /&gt;    | user &lt;strong&gt;IDENTIFIED BY&lt;/strong&gt; password&lt;br /&gt;      [ dblink_authentication ]&lt;br /&gt;    }&lt;br /&gt;  | dblink_authentication&lt;br /&gt;  ]&lt;br /&gt;  [ &lt;strong&gt;USING&lt;/strong&gt; &#39;connect_string&#39; ] ;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Oracle has an additional keyword, SHARED. This keyword allows multiple users to share a database link. AS does not currently support this syntax.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In both instances, you can choose to create a public or a private link. A public link can be accessed by anyone in a database, a private link can only be accessed by the creator.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;dblink is the name of the link. A database link in AS may be any valid name.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In both cases, you define who to connect as and the password for that user. Oracle offers an additional option to connect as CURRENT_USER. AS does not offer that keyword at this time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In Oracle&#39;s syntax, the dblink_authentication is tied to the SHARED database link type.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Both databases have the USING keyword but this is where AS differs most from Oracle.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In AS, when you use USING, you chose to connect to an Oracle database (OCI) or a postgres database (LIBPQ), which would include an AS database. This keyword, OCI or LIBPQ, tells AS which library to use to connect to the remote database. The syntax is mostly the same for both types of database: server, port and database name.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Some examples (I will use &lt;a href=&quot;http://enterprisedbnews.blogspot.com/2007/11/edbplus-and-edbloader-emulate-oracles.html&quot;&gt;EDB*Plus&lt;/a&gt; to run the examples):&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If I wanted to create a private database link from my local AS server to an AS database (in this case, the same database), I would use this syntax:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;CREATE DATABASE LINK aLocalAsDb&lt;br/&gt;CONNECT TO enterprisedb IDENTIFIED BY edb&lt;br/&gt;USING libpq &#39;host=localhost port=5444 dbname=edb&#39;&lt;/code&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;Connected to EnterpriseDB 8.3.0.12 (localhost:5444/edb) AS enterprisedb&lt;br /&gt;&lt;br /&gt;EDB*Plus: Release 8.3 (Build 14)&lt;br /&gt;Copyright (c) 2008, EnterpriseDB Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; drop database link alocalasdb;&lt;br /&gt;&lt;br /&gt;Database Link dropped.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; CREATE DATABASE LINK aLocalAsDb&lt;br /&gt;  2    CONNECT TO enterprisedb IDENTIFIED BY edb&lt;br /&gt;  3    USING libpq &#39;host=localhost port=5444 dbname=edb&#39;&lt;br /&gt;  4  /&lt;br /&gt;&lt;br /&gt;Database Link created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select 123 from dual@alocalasdb;&lt;br /&gt;&lt;br /&gt;   ?COLUMN?&lt;br /&gt;-----------&lt;br /&gt;        123&lt;br /&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;Creating and using a link to Oracle is very similar. I have an &lt;a href=&quot;http://www.oracle.com/technology/products/database/xe/index.html&quot;&gt;Oracle XE database&lt;/a&gt;. I will create a public link that connects to the HR user. I would use this syntax:&lt;/p&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;EDB*Plus: Release 8.3 (Build 14)&lt;br /&gt;Copyright (c) 2008, EnterpriseDB Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; conn enterprisedb/edb&lt;br /&gt;Connected to EnterpriseDB 8.3.0.12 (localhost:5444/edb) AS enterprisedb&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; create public database link oraxe&lt;br /&gt;  2  connect to hr identified by hr&lt;br /&gt;  3  using oci &#39;//localhost:1521/xe&#39;;&lt;br /&gt;&lt;br /&gt;Database Link created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select 123 from dual@oraxe;&lt;br /&gt;&lt;br /&gt;   ?COLUMN?&lt;br /&gt;-----------&lt;br /&gt;        123&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select count(*) from employees@oraxe;&lt;br /&gt;&lt;br /&gt;               COUNT&lt;br /&gt;--------------------&lt;br /&gt;                 107&lt;br /&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;And that&#39;s just about it. At this time, you cannot use a database link to call a remote procedure. That is planned for the future.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Also, if you connect to an 11g database, you may need to quote your password if you use a mixed case password in Oracle. 11g allows users to have mixed case passwords.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Because AS is using OCI to connect to the Oracle database, you must have an Oracle client installed and correctly configured on the AS server to create a database link to Oracle. You may use the instant client or the full client. Your ORACLE_HOME must also be correctly set. It can also be set in an AS configuration file.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Take care,&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LewisC&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/postgres&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;postgres&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/postgres%20plus&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;postgres plus&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/04/edb-tip-4-database-links-in-edb.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-5998338834216731440</guid><pubDate>Wed, 23 Apr 2008 13:28:00 +0000</pubDate><atom:updated>2008-04-23T06:33:54.098-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">advanced server</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">postgres plus</category><title>Combined Forums for Postgres and EnterpriseDB Issues</title><description>In the past, your basic support for postgres has been mail groups.  I&#39;ve never been a big fan of mail groups.  You have to subscribe to the group and usually you get tons of stuff you don&#39;t really want.  Worst of all, you either have to sort through it or filter it to a folder.  I never seem to be able to keep up with the stuff I am interested in due to the clutter.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://forums.enterprisedb.com/&quot;&gt;EnterpriseDB has had forums&lt;/a&gt; for a while but recently combined the postgres and advanced server forums into a single location.  GridSQL also has it&#39;s own forum.  You can ask pretty much any question you might have.  The forums are monitored by EnterpriseDB employees and there are also some very knowledgeable users out there.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/forums&quot; rel=&quot;tag&quot;&gt;forums&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/04/combined-forums-for-postgres-and.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-8041260063974257129</guid><pubDate>Wed, 26 Mar 2008 14:30:00 +0000</pubDate><atom:updated>2008-03-26T07:36:21.882-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">gridsql</category><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">release</category><title>EnterpriseDB Open Sources GridSQL</title><description>I wrote about &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/enterprisedb-gridsql-rac-for-postgresql-18175&quot;&gt;GridSQL and EnterpriseDB a while back&lt;/a&gt;.  EnterpriseDB bought GridSQL (from Mason who now works at EnterpriseDB) and has been working to improve it.  Yesterday, &lt;a href=&quot;http://www.enterprisedb.com/about/news_events/press_releases/03_25_08c.do&quot;&gt;they announced that they are open sourcing it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;GridSQL is really for data warehousing but can be applied to some OLTP/reporting combination databases.  What it does is take a query and spread it out to run in parallel against a set of cheap PCs.  There is a controller machine, called a coordinator, that keeps track of what is running and where.&lt;br /&gt;&lt;br /&gt;Because there is a central point of failure (the coordinator), it is not a high availability solution. But, also because of the coordinator, you can hot swap, add or remove nodes while users are accessing the data.  Very cool technology.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;gridsql&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/03/enterprisedb-open-sources-gridsql.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-6519282646206137673</guid><pubDate>Fri, 07 Mar 2008 14:26:00 +0000</pubDate><atom:updated>2008-03-07T06:28:56.798-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">migration</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>A New EnterpriseDB Webinar</title><description>I&#39;m doing a &quot;&lt;a href=&quot;http://research.ittoolbox.com/podcasts/vendor.asp?grid=5204&quot;&gt;Best Practices on Database Migration&lt;/a&gt;&quot; webinar at ITToolbox.com March 12.  &lt;br /&gt;&lt;br /&gt;I&#39;ll talk about ways to make your life easier when doing database migrations.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/03/new-enterprisedb-webinar.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-6558692315593941363</guid><pubDate>Mon, 11 Feb 2008 18:23:00 +0000</pubDate><atom:updated>2008-02-11T10:31:39.505-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">apatar</category><category domain="http://www.blogger.com/atom/ns#">data integration</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><title>Open Source Data Integrator Apatar Announces Partnership with EnterpriseDB</title><description>Apatar is a provider of open source software tools for the data integration market. Apatar provides data integration to the companies by offering provides support, training, and consulting services for its integration software solutions.&lt;br /&gt;&lt;br /&gt;Apatar provides connectivity to EnterpriseDB, Oracle, MS SQL, MySQL, Sybase, DB2, MS Access, PostgreSQL, XML, InstantDB, Paradox, BorlandJDataStore, Csv, MS Excel, Qed, HSQL, Compiere ERP, SalesForce.Com, SugarCRM, Goldmine, any JDBC data sources and more.&lt;br /&gt;&lt;br /&gt;The free Community Edition is available for download and provides plenty of functionality out of the box.  There is a also an Enterprise Edition that provides some additional features.  You can &lt;a href=&quot;http://apatar.com/product_editions.html&quot;&gt;compare features in the feature matrix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&quot;We are pleased to support EnterpriseDB&#39;s world-class database solutions as part of our integration practice,&quot; said Renat Khasanshyn, founder and CEO of Apatar, Inc. &quot;In today&#39;s enterprises, most data integration projects never get built. The ROI (Return on Investment) on the small projects is simply too low to justify bringing in expensive middleware. Apatar entered this market as an open source vendor bringing the ease of drag-and-drop data integration, including with EnterpriseDB databases, to the companies that previously found proprietary data integration, ETL, and EAI software tools expensive and difficult to implement.&quot;&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/02/open-source-data-integrator-apatar.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-5541627547982443501</guid><pubDate>Tue, 05 Feb 2008 20:22:00 +0000</pubDate><atom:updated>2008-02-05T12:27:17.504-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">award</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">linuxworld</category><title>EnterpriseDB CEO Named One of the “Top Leaders in Open Source Business”</title><description>EnterpriseDB&#39;s CEO, Andy Astor, was named one of 13 “&lt;a href=&quot;http://www.enterprisedb.com/news_events/press_releases/02_05_08.do&quot;&gt;Top Leaders in Open Source Business&lt;/a&gt;” by LinuxWorld Magazine.  EnterpriseDB was also recently named one of the “Top 20 Companies to Watch in 2008&quot; by Linux Magazine.&lt;br /&gt;&lt;br /&gt;This is good news for open source and for people looking to save money on database license fees.&lt;br /&gt;&lt;br /&gt;EnterpriseDB sells the open source based Oracle compatible EnterpriseDB Advanced Server as well as a packaged &lt;a href=&quot;http://www.postgresql.org/&quot;&gt;Postgres&lt;/a&gt; implementation.  EnterpriseDB also offers consulting and training.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/02/enterprisedb-ceo-named-one-of-top.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-2789139825645499506</guid><pubDate>Wed, 23 Jan 2008 00:41:00 +0000</pubDate><atom:updated>2008-01-22T16:52:53.221-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">book</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><title>EnterpriseDB: The Definitive Reference for less than $25 USD</title><description>If you&#39;ve thought about buying the book, &lt;a href=&quot;http://search.a1books.com/cgi-bin/mktSearch?act=showDesc&amp;ITEM_CODE=0977671577&amp;WVSESSION_ID=405828126#minPrice&quot;&gt;EnterpriseDB: The Definitive Reference&lt;/a&gt;, you should check out A1Books.com.  As of right now, 1/22/08, it&#39;s going for $24.80 USD (Brand New).&lt;br /&gt;&lt;br /&gt;Shipping would depend on your location.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/01/enterprisedb-definitive-reference-for.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-423846475563642044</guid><pubDate>Tue, 15 Jan 2008 16:20:00 +0000</pubDate><atom:updated>2008-01-15T08:22:53.804-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">user group</category><title>Any interest in a Central Florida EnterpriseDB User Group?</title><description>I posted this question on my &lt;a href=&quot;http://postgresqldbnews.blogspot.com/2008/01/postgres-andor-enterprisedb-user-groups.html&quot;&gt;Postgres Blog&lt;/a&gt;.  Send me a note if you would be interested.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/01/any-interest-in-central-florida.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-6116485088071587800</guid><pubDate>Wed, 09 Jan 2008 23:29:00 +0000</pubDate><atom:updated>2008-01-09T15:31:46.001-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">book</category><category domain="http://www.blogger.com/atom/ns#">contest</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><title>Win a copy of my EnterpriseDB book</title><description>I&#39;ve been thinking long and hard about how I want to give away a &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/archives/my-enterprisedb-book-is-finally-available-21578&quot;&gt;few copies of my book&lt;/a&gt;.  I will be at the &lt;a href=&quot;http://www.soug.net/&quot;&gt;SOUG meeting Thursday, Jan 24th&lt;/a&gt; here in Tampa.  If you&#39;re in the area, stop by.  I&#39;m going to have a drawing for a couple of copies that night.&lt;br /&gt;&lt;br /&gt;That doesn&#39;t really help those people who aren&#39;t near by.  So, I am going to ask 3 questions and the first two people to answer all three correctly will get a copy.  &lt;br /&gt;&lt;br /&gt;They won&#39;t be hard to answer but the answers might require a little work.  I will ask the questions and explain how you will need to respond.  &lt;br /&gt;&lt;br /&gt;To get the questions, you need to follow me on twitter.  You can find my twitter account in various places on the net, including in my blog at &lt;a href=&quot;http://blogs.ittoolbox.com/oracle/guide/&quot;&gt;ITToolbox.com&lt;/a&gt;.  You will need to be watching at 9am Eastern time, Jan 12, 2008.  Follow and be watching for my questions.  I will ask the questions and then explain what to do next.&lt;br /&gt;&lt;br /&gt;This contest is open to anyone.  If you are outside the US and you win, we can discuss the best way to get you your book.&lt;br /&gt;&lt;br /&gt;I hope this is a fun process.  That&#39;s what I&#39;m shooting for anyway.&lt;br /&gt;&lt;br /&gt;Let me know what you think.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/contest&quot; rel=&quot;tag&quot;&gt;contest&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/01/win-copy-of-my-enterprisedb-book.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-3625969186040499680</guid><pubDate>Fri, 04 Jan 2008 01:09:00 +0000</pubDate><atom:updated>2008-01-03T17:10:02.590-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">author</category><category domain="http://www.blogger.com/atom/ns#">book</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><category domain="http://www.blogger.com/atom/ns#">published</category><title>My Book Has Been Printed</title><description>Well, it&#39;s taken over a year but it has finally arrived.  I started writing the book back in Aug 2006.  I finished in late Jan 2007 and the technical editor finished his work in March.  Now, In Jan 2008, &lt;a href=&quot;http://www.google.com/search?q=enterprisedb+book&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a&quot;&gt;EnterpriseDB: The Definitive Reference is available&lt;/a&gt;.  I&#39;m glad I didn&#39;t wait for the movie.  ;-)&lt;br /&gt;&lt;br /&gt;It&#39;s kind of ironic.  Just this morning, I posted that I am working on my second book.  My wife called me at work and told me two boxes of books had arrived.  2008 is turning out to be a good year.  I&#39;ll have some additional news in the near future.&lt;br /&gt;&lt;br /&gt;Anyway, the book looks good.  I&#39;ve already found a few typos and grammar errors just skimming around.  I like the font and the pages look really crisp.  All in all, I have to say I am very happy that the book is out.  &lt;br /&gt;&lt;br /&gt;Check out some photos:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/lewisc/2164574974/&quot; title=&quot;EnterpriseDB Book 016 by LewisCunningham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2138/2164574974_d57c225d26.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; alt=&quot;EnterpriseDB Book 016&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/lewisc/2164576620/&quot; title=&quot;EnterpriseDB Book 020 by LewisCunningham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2385/2164576620_ec5130bcd5.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; alt=&quot;EnterpriseDB Book 020&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think I want to give a couple away.  Maybe some kind of contest for the blog readers.  Any ideas of something fair?  I am willing to pay shipping for a couple but that would only be here in the US.  Overseas shipping gets expensive.&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2008/01/my-book-has-been-printed.html</link><author>noreply@blogger.com (LewisC)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2138/2164574974_d57c225d26_t.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-1562261597380699425</guid><pubDate>Tue, 25 Dec 2007 20:13:00 +0000</pubDate><atom:updated>2008-04-12T10:23:15.488-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">compatibility</category><category domain="http://www.blogger.com/atom/ns#">compatible</category><title>Compatibility Between EntepriseDB and Oracle</title><description>Have you wondered what features are compatible between Oracle and EnterpriseDB?  Have you wondered if EnterpriseDB is &lt;i&gt;REALLY&lt;/i&gt; compatible with Oracle?&lt;br /&gt; &lt;br /&gt;EnterpriseDB has compiled a new document called the Oracle Compatibility Developer&#39;s Guide.  You can download the &lt;a href=&quot;http://www.enterprisedb.com/openDownloads.do?productId=212&amp;redirectReason=true&amp;productVersion=otherDownload&quot;&gt;Oracle Compatibility Developer&#39;s Guide for EntepriseDB 8.2&lt;/a&gt; or the &lt;a href=&quot;http://www.enterprisedb.com/openDownloads.do?productId=213&amp;redirectReason=true&amp;productVersion=otherDownload&quot;&gt;Oracle Compatibility Developer&#39;s Guide for 8.3 Beta&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This new document should help answer one of the most common questions I get asked, i.e., what is compatible and what is not compatible between EnterpriseDB and Oracle.  If you are interested in EnterpriseDB but haven&#39;t taken the plunge, check out this document.  &lt;br /&gt;&lt;br /&gt;Speaking of compatibility, I plan to start a series of articles that directly compares a feature between Oracle and EntepriseDB (with mentions to pure PostgreSQL).&lt;br /&gt;&lt;br /&gt;LewisC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/12/compatibility-between-enteprisedb-and.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-9133372758481836666</guid><pubDate>Sun, 18 Nov 2007 17:22:00 +0000</pubDate><atom:updated>2008-04-12T10:24:00.255-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">8.3</category><category domain="http://www.blogger.com/atom/ns#">beta</category><category domain="http://www.blogger.com/atom/ns#">compatibility</category><category domain="http://www.blogger.com/atom/ns#">compatible</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>EDB*Plus and EDB*Loader Emulate Oracle’s SQL*Plus and SQL*Loader:  EnterpriseDB 8.3 Beta</title><description>EnterpriseDB Advanced Server’s enterprise-class, cross-platform developer and DBA console now includes EDB*Plus, a command-line terminal interface that emulates Oracle’s SQL*Plus. Like SQL*Plus, EDB*Plus allows users to run SQL and PL/SQL commands interactively. Oracle users accustomed to SQL*Plus will find EDB*Plus immediately familiar. In addition, EnterpriseDB’s new EDB*Loader emulates Oracle’s SQL*Loader and provides even deeper compatibility.&lt;br /&gt;&lt;br /&gt;EnterpriseDB Advanced Server 8.3 adds several new features that enhance the database’s ability to run, unchanged, applications written for Oracle. For example, there are more than 20 new Oracle-compatible system views, Oracle-compatible packages now support comments, and ROWNUM can now be used in sub-queries and views. In addition, EnterpriseDB’s new bulk binding feature, which allows collections of SQL statements to be collected and run together to improve performance, further improves Oracle compatibility.&lt;br /&gt;&lt;br /&gt;Other updates to the new software include:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A DBA monitoring console that provides real-time charting for CPU and memory usage, disk I/O, and cache hit ratios across multiple EnterpriseDB databases&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Support for embedded hints, which can alter program execution&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Transaction error recovery support, which enables implicit statement-level transactions&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Updateable cursors&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Definer/invoker rights to provide controlled access to database objects&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/11/edbplus-and-edbloader-emulate-oracles.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-6461021996466567942</guid><pubDate>Wed, 31 Oct 2007 02:25:00 +0000</pubDate><atom:updated>2007-10-30T19:33:03.140-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">enterprisedb express</category><category domain="http://www.blogger.com/atom/ns#">install</category><category domain="http://www.blogger.com/atom/ns#">support</category><title>Is EnterpriseDB Express Gone?</title><description>I was at the EnterpriseDB web site recently and noticed that the downloads have changed a bit.  I no longer see a download for EnterpriseDB Express.  If you remember a while back, I had found &lt;a href=&quot;http://enterprisedbnews.blogspot.com/2007/09/enterprisedb-install-annoyance.html&quot;&gt;an annoyance with the installation of the express version&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now you go right to the advance server download and get a messsage.  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You have downloaded EnterpriseDB Advanced Server. Currently, EnterpriseDB Advanced Server 8.2 requires a Product Key in order to use the software above 1 CPU, 1 GB of memory, and 6GB of data. This product key will be removed from future releases of EnterpriseDB Advanced Server.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The message also provides a license key so that you can install the software.  Kudos EnterpriseDB.  I appreciate it.  I&#39;m not opposed to an express version.  Actually, I think it makes a lot of sense.  But before implementing it, the software should be able to limit itself.&lt;br /&gt;&lt;br /&gt;It looks like that&#39;s what they plan to do.&lt;br /&gt;&lt;br /&gt;I also noticed a new feature/offering.  EnterpriseDB now offers a Developer Support Pack.  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Need some help getting started with EnterpriseDB Advanced Server? Sign up for 6 months of technical support today for just $99. This Developer Support Pack is to be used for development only and not for production implementations.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That is an incredibly reasonable price for a developer to get up to speed.  I didn&#39;t read the details but if that allows a developer access to phone support, $99 for half a year can&#39;t be beat.&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/oracle&quot; rel=&quot;tag&quot;&gt;oracle&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/10/is-enterprisedb-express-gone.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-9160493175856720913</guid><pubDate>Wed, 03 Oct 2007 12:57:00 +0000</pubDate><atom:updated>2007-10-03T06:04:39.336-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">gis</category><category domain="http://www.blogger.com/atom/ns#">mysql</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>EnterpriseDB Wins One From MySQL</title><description>Do you do GEO?  If you do, you&#39;ve probably at least heard of PostGIS, the Postgres GIS extension.  PostGIS just gave EnterpriseDB a big win over its open source competition.  &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.fortiusone.com/&quot;&gt;FortiusOne&lt;/a&gt; leads the market towards the next generation of Web mapping. Its breakthrough Intelligent Mapping technologies offer rich information visualization on maps and unprecedented access to geographic data. FortiusOne innovations include: high-speed Web-based geographic analysis tools, a flexible and scalable Web services platform supporting the special needs of geographic data, and an innovative application of social networking techniques to geographic knowledge creation.&lt;br /&gt;&lt;br /&gt;FortiusOne&#39;s main product is &lt;a href=&quot;http://www.geocommons.com/&quot;&gt;GeoCommons&lt;/a&gt;. GeoCommons houses a large geospatial database with more than two billion attributes, 35,000 variables, and 1,500 datasets. As a fast-growing startup, FortiusOne required a low-cost, powerful database solution to run GeoCommons. Originally, FortiusOne selected MySQL; however, when FortiusOne was preparing to deploy the first public beta of GeoCommons, they encountered major performance roadblocks. &lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.fortiusone.com/news/gc_social_media_release/images/Find_New_Markets.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;&quot; src=&quot;http://www.fortiusone.com/news/gc_social_media_release/images/Find_New_Markets.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FortiusOne has migrated GeoCommons from MySQL to &lt;a href=&quot;http://www.enterprisedb.com/&quot;&gt;EnterpriseDB Advanced Server&lt;/a&gt; and improved overall system performance by 80%. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;“We slammed into a brick wall with MySQL,” said Chris Ingrassia, chief technology officer, FortiusOne. “As an example, MySQL’s rather limited and incomplete spatial support dramatically impacted performance. We were looking for an affordable database solution, but we required enterprise-class features and performance that MySQL simply couldn’t deliver. Plus, philosophically we want to support open source-based technologies like EnterpriseDB.”&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The PostGIS geospatial extensions to PostgreSQL played a key role in FortiusOne’s selection of EnterpriseDB Advanced Server, a PostgreSQL-based solution, and dramatically improved performance. FortiusOne needed to run complex spatial queries against large datasets quickly and efficiently, and found the MySQL spatial extensions to be far less complete and comprehensive than PostGIS. EnterpriseDB Advanced Server processes some of GeoCommons’ database-intensive rendering requests in one-thirtieth of the time required by MySQL. During peak loads, GeoCommons processes more than one hundred thousand complex requests per hour, requiring true enterprise-class performance and scalability.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;“EnterpriseDB occupies that crucial middle ground between MySQL and Oracle,” continued Ingrassia. “EnterpriseDB is priced competitively with MySQL, but provides significantly better performance and advanced features you just don’t find in most open source databases.”&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;You can get additional information about GeoCommons at &lt;a href=&quot;http://help.geocommons.com/faq&quot;&gt;the GeoCommons FAQ&lt;/a&gt;.  Checkout some cool screenshots at &lt;a href=&quot;http://www.fortiusone.com/news/gc_social_media_release/screenshots/&quot;&gt;the FortiusOne screenshot page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/mysql&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/10/enterprisedb-wins-one-from-mysql.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-2143435086781281715</guid><pubDate>Wed, 26 Sep 2007 23:24:00 +0000</pubDate><atom:updated>2007-09-26T16:30:20.720-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">webinar</category><title>EnterpriseDB Fall Webinar Series</title><description>Sign up for &lt;a href=&quot;http://www.enterprisedb.com/news_events/webinars/webinar.do&quot;&gt;Live Webinars from EnterpriseDB&lt;/a&gt;.  The December Data Warehouse one looks really good.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;October 4, 2007 9AM ET &amp; 2PM ET&lt;br /&gt;Top 5 Ways to Supercharge Your Database&lt;br /&gt;&lt;/span&gt;Abstract: - Join EnterpriseDB to learn 5 simple ways to supercharge your EnterpriseDB and Postgres databases to gain the best performance. From Dynatune™ to auto-vacuuming, there are simple ways to optimize your database without sacrificing availability and reliability&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Jim Mlodgenski - Vice President, Worldwide Technical Services EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;October 10, 2007 1PM ET&lt;br /&gt;Lowering TCO While Raising Revenues for Business Intelligence Applications&lt;/span&gt;&lt;br /&gt;Abstract: - Join EnterpriseDB and JasperSoft to learn how to implement a fully functional BI architecture based on open source technologies that addresses the paradox of lowering your customer’s TCO while improving professional services revenue.&lt;br /&gt;&lt;br /&gt;Speakers: &lt;br /&gt;Jose Morales - Vice President, Business Development, JasperSoft,&lt;br /&gt;Bill Doyle - Sr.Vice President, Business Development, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;October 23, 2007 12PM ET&lt;br /&gt;What is Enterprise-Class? Going Beyond the Checklist to Select the Right Database for Your Application&lt;/span&gt;&lt;br /&gt;Abstract: - In this webcast, renowned industry guru Curt Monash provides an objective context in which to evaluate and select the right DBMS based on your application&#39;s needs. He will discuss how all DBMS&#39; features are not all created equal in the way they address application-specific demands. Particular focus will be given to the unique requirements of transaction-intensive applications.&lt;br /&gt;&lt;br /&gt;Speakers: &lt;br /&gt;Curt Monash - Monash Information Services,&lt;br /&gt;Derek M. Rodner - Director, Product Strategy, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;October 30, 2007 9AM ET &amp; 2PM ET&lt;br /&gt;Building New Applications on EnterpriseDB Advanced Server&lt;/span&gt;&lt;br /&gt;Abstract: - Join EnterpriseDB experts to learn more about building new applications on EnterpriseDB Advanced Server. Topics include:&lt;br /&gt;&lt;br /&gt;    * PL/SQL compatibility&lt;br /&gt;    * Stored Procedures, Packages, Functions, Triggers, etc.&lt;br /&gt;    * SQL Query Profiler&lt;br /&gt;    * Procedural Language Debugger&lt;br /&gt;    * Developer Studio&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Derek M. Rodner - Director, Product Strategy, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;November 7, 2007 9AM ET &amp; 2PM ET&lt;br /&gt;Using EnterpriseDB to Offload Reporting to Increase Performance and Save Money&lt;/span&gt;&lt;br /&gt;Abstract: - Learn how EnterpriseDB Advanced Server is being used to offload reporting from production Oracle databases to increase productivity and performance, while saving companies millions of dollars.&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Derek M. Rodner - Director, Product Strategy, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;November 28, 2007 9AM &amp; 2PM ET&lt;br /&gt;Building a High Performance and Scalable Environment with EnterpriseDB&lt;/span&gt;&lt;br /&gt;Advanced Server&lt;br /&gt;Abstract: - Vendor solutions like Oracle RAC™ can provide additional performance up to a certain point, but in most cases, the cost of these solutions far exceeds the benefits. Join EnterpriseDB experts as they show you how to architect a highly scalable environment to deliver optimal performance without sacrificing availability or reliability&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Jim Mlodgenski - Vice President, Worldwide Technical Services, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;December 5, 2007 9AM &amp; 2PM ET&lt;br /&gt;Best Practices for Data Warehousing&lt;/span&gt;&lt;br /&gt;Speaker: - Join EnterpriseDB experts as they take you on a guided tour of GridSQL™ for EnterpriseDB Advanced Server. From architecture to implementation, learn how:&lt;br /&gt;&lt;br /&gt;    * GridSQL’s “shared-nothing” distributed architecture is transparent to the application&lt;br /&gt;    * Servers can be easily added to the grid to increase performance&lt;br /&gt;    * DBAs can monitor and administer the entire grid or a single server from a simple, easy-to-use graphical interface&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Jim Mlodgenski - Vice President, Worldwide Technical Services, EnterpriseDB&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;December 12, 2007 9AM &amp; 2PM ET&lt;br /&gt;Database Worst Practices: The Top 5 Mistakes Developers Make and How to Avoid Them&lt;/span&gt;&lt;br /&gt;Abstract: - Applications today are growing more and more complex, and with that complexity comes the increased risk of error. Join EnterpriseDB experts as they discuss the &quot;Top 5&quot; mistakes that developers make and how to avoid them.&lt;br /&gt;&lt;br /&gt;Speaker: &lt;br /&gt;Jim Mlodgenski - Vice President, Worldwide Technical Services, EnterpriseDB &lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/webinar&quot; rel=&quot;tag&quot;&gt;webinar&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/09/enterprisedb-fall-webinar-series.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-7017596468659655008</guid><pubDate>Wed, 19 Sep 2007 21:06:00 +0000</pubDate><atom:updated>2007-09-19T14:14:24.796-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">webinar</category><title>EnterpriseDB Webinar: Building a Highly Available Infrastructure</title><description>A &lt;a href=&quot;http://now.eloqua.com/e/er.aspx?s=400&amp;amp;lid=88&amp;amp;elq=2199D6E63E8641B19AB387BA8F8B1C6B&quot;&gt;new Webinar about EnterpriseDB&lt;/a&gt; (not from me).  Building a Highly Available Infrastructure for Your Database and Application.&lt;br /&gt;&lt;br /&gt;It&#39;s next wednesday, September 26, 2007 at 9am and 2pm Eastern.  I guess it repeats.  It&#39;s an hour long.&lt;br /&gt;&lt;br /&gt;Here&#39;s the blurb from the email I received:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What does an hour of downtime cost you? Analysts report that just one hour of downtime can cost businesses millions of dollars, and some never recover.&lt;br /&gt;&lt;br /&gt;What applications are mission critical today? In the past, only those applications that controlled finances were considered mission-critical. But, today, almost every application, from your e-commerce website to your email and calendaring system, are considered mission-critical and candidates for high-availability planning.&lt;br /&gt;&lt;br /&gt;While everyone agrees that downtime is caused by three major areas - people, processes and technology - every effort is being made to ensure that technology is never the cause.&lt;br /&gt;&lt;br /&gt;Join EnterpriseDB and Continuent experts as they show you how to implement a highly available environment for your database infrastructure. Topics include:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Online Operations&lt;/li&gt;&lt;li&gt;Point-in-Time Recovery&lt;/li&gt;&lt;li&gt;Back Up and Failover Processing&lt;/li&gt;&lt;li&gt;Data Storage Access&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;You will also discover how Continuent uni/cluster technology can remove all single points of failure in your infrastructure by using a synchronous, multi-master approach to database replication. Key uni/cluster technology capabilities are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&quot;Always On&quot; database and application services with instant, automatic and transparent failover&lt;/li&gt;&lt;li&gt;Automatic load balancing - use any database server to process user queries&lt;/li&gt;&lt;li&gt;Near-linear scaling of application users and load&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Questions and requests for additional information will be addressed to help you with your installation.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;I plan to register and check it out.  I&#39;ll post the highlights afterwards.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/webinar&quot; rel=&quot;tag&quot;&gt;webinar&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;&lt;/p&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/09/enterprisedb-webinar-building-highly.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4006424101263710264.post-4694130397321215054</guid><pubDate>Thu, 13 Sep 2007 23:35:00 +0000</pubDate><atom:updated>2007-09-13T16:49:46.197-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">enterprisedb</category><category domain="http://www.blogger.com/atom/ns#">open source</category><title>Bob Zurek&#39;s Open Letter to the Wall Street Journal</title><description>News has been slow in the EnterpriseDB world lately.  I haven&#39;t posted in a while.&lt;br /&gt;&lt;br /&gt;Bob Zurek is EnterpriseDB&#39;s (fairly) new CTO.  He is an ex-IBM exec and maintains his blog on the IBM DeveloperWorks blog area.  He&#39;s been blogging for a long time so I&#39;m not sure how he worked out the move from IBM to EnterpriseDB and kept the same area.  &lt;br /&gt;&lt;br /&gt;Anyway, Bob posted an open letter to the Wall Street Journal about a reporter&#39;s take on Open Source.  Bob objected to the reporter, Walter K. Mosberg, classifying open source as a two-edge sword.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;But open source is a two-edge sword. While it draws on smart developers from many places, nobody is ultimately responsible for the quality of the product, and open source developers have an imperfect feel for how average people use software.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Bob says:&lt;br /&gt;&lt;blockquote&gt;I’d like to respectfully take issue with this statement. As a person active in the tech industry, you know that there has been a strong open source track record in the software industry where many companies, both open source and traditionally commercial have embraced open source in a very big way. These companies include the likes of IBM, Sun and Novell but also emerging open source companies like EnterpriseDB, Talend, Compiere and SugarCRM.  All these companies absolutely take responsibility for the quality of the product. I would also say that many of these companies employ some of the best user experience experts in the industry. As a former IBM executive I know that IBM works very hard on providing the user with the best experience in all aspects of their software. Making a statement claiming “open-source developers often have an imperfect feel for how average people use software” is not fair to those projects that employ user experience experts and put a great deal of effort in understanding average users.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I would actually be more inclined to agree with Mossberg.  Most open source projects do not &quot;employ user experience experts&quot; or &quot;put a great deal of effort in understanding average users&quot;.  Not to say it&#39;s not good software.  Look at postgres.  Technically superior software but you still need to edit a complex text file to configure user permissions.&lt;br /&gt;&lt;br /&gt;I would say that open source is a two-edge sword for other reasons too.  I have spent most of my career working in large enterprises and I can tell you that the question of support, quality and licensing comes up very often.  &lt;br /&gt;&lt;br /&gt;&quot;Who will support it and how long will they be around?&quot;  Can you name all of the company&#39;s that started as a support organization for an open source package and are no longer around?&lt;br /&gt;&lt;br /&gt;GPL, LPGL, etc are death to large enterprises.  The legal touch-points make for some interesting discussions when you are recommending an open source tool.  Any time you need the lawyers to use &quot;free&quot; software, you might as well drop it.&lt;br /&gt;&lt;br /&gt;That&#39;s one of the benefits of having a company like EnterpriseDB around.  It&#39;s not open source.  It&#39;s based on open source.  Having to pay to use something just seems to make sense to lawyers.  Anything else freaks them out.&lt;br /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;p /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/open+source&quot; rel=&quot;tag&quot;&gt;open source&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/enterprisedb&quot; rel=&quot;tag&quot;&gt;enterprisedb&lt;/a&gt;</description><link>http://enterprisedbnews.blogspot.com/2007/09/bob-zureks-open-letter-to-wall-street.html</link><author>noreply@blogger.com (LewisC)</author><thr:total>0</thr:total></item></channel></rss>