<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Reserved words in Oracle</title>
	<atom:link href="http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/</link>
	<description>Michael McLaughlin's Technical Blog</description>
	<lastBuildDate>Wed, 08 Sep 2010 23:39:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: maclochlainn</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-1172</link>
		<dc:creator>maclochlainn</dc:creator>
		<pubDate>Tue, 03 Mar 2009 01:23:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-1172</guid>
		<description>Maitane, Unfortunately, no. I replied more fully on the &lt;a href=&quot;http://blog.mclaughlinsoftware.com/how-to-comment-on-blog/&quot; rel=&quot;nofollow&quot;&gt;@How to comment on blog&lt;/a&gt;. When I&#039;m ready for that, I&#039;ll post it on the blog.
Thanks, Michael</description>
		<content:encoded><![CDATA[<p>Maitane, Unfortunately, no. I replied more fully on the <a href="http://blog.mclaughlinsoftware.com/how-to-comment-on-blog/" rel="nofollow">@How to comment on blog</a>. When I&#8217;m ready for that, I&#8217;ll post it on the blog.<br />
Thanks, Michael</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maitane</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-1150</link>
		<dc:creator>Maitane</dc:creator>
		<pubDate>Sun, 01 Mar 2009 22:00:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-1150</guid>
		<description>Is there a way to become a content writer for the site?</description>
		<content:encoded><![CDATA[<p>Is there a way to become a content writer for the site?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-1092</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Fri, 27 Feb 2009 07:43:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-1092</guid>
		<description>I wrote up a more complicated PL/SQL program that fetches all keywords from the inbuilt view V$RESERVED_WORDS. Then I created a keywords table merged from the official Oracle documentation *and* the SQLPLus &quot;help reserved words&quot; command. I integrated those into a final list.

For Oracle 11.1 I get 111 reserved keywords and 1593 keywords for V$RESERVED_WORDS, based on whether table creation with such a name fails or not. The keywords from the docs and the inbuilt command add no reserved keywords and 76 non-reserved keywords, giving a final 111 reserved and 1669 non-reserved keywords.

I will put up a table name (keyword) checker on my Website within the next weeks. Just check it out on (soon).</description>
		<content:encoded><![CDATA[<p>I wrote up a more complicated PL/SQL program that fetches all keywords from the inbuilt view V$RESERVED_WORDS. Then I created a keywords table merged from the official Oracle documentation *and* the SQLPLus &#8220;help reserved words&#8221; command. I integrated those into a final list.</p>
<p>For Oracle 11.1 I get 111 reserved keywords and 1593 keywords for V$RESERVED_WORDS, based on whether table creation with such a name fails or not. The keywords from the docs and the inbuilt command add no reserved keywords and 76 non-reserved keywords, giving a final 111 reserved and 1669 non-reserved keywords.</p>
<p>I will put up a table name (keyword) checker on my Website within the next weeks. Just check it out on (soon).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-745</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Fri, 06 Feb 2009 17:15:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-745</guid>
		<description>I just realized that the 29 keywords I found to be res_semi = &#039;Y&#039; in Oracle 10.2 appear in your reserved keyword list. Only COLUMN_VALUE and NESTED_TABLE_ID seem to be off (guessed).</description>
		<content:encoded><![CDATA[<p>I just realized that the 29 keywords I found to be res_semi = &#8216;Y&#8217; in Oracle 10.2 appear in your reserved keyword list. Only COLUMN_VALUE and NESTED_TABLE_ID seem to be off (guessed).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-744</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Fri, 06 Feb 2009 16:53:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-744</guid>
		<description>Good work. One mention though:

You said: &quot;There is no help option for KEY WORDS through Oracle Database 11g, Release 1.&quot; Actually, the V$RESERVED_WORDS view *is* the list of keywords used, just not only reserved ones, as indicated by the &quot;reserved&quot; column in that view, but also non-reserved keywords.

I fiddled with the view a bit (Oracle 10.2!), I noticed that there are *no* keywords with res_attr = &#039;Y&#039;. This column is redundant at the current state. Furthermore I noticed that there are only 2 keywords with res_attr = &#039;Y&#039;, namely COLUMN_VALUE and NESTED_TABLE_ID. Creating tables COLUMN_VALUE and NESTED_TABLE_ID works, so these are rather non-reserved keywords (besides, there are more COLUMN_* and NESTED_TABLE_* keywords marked as reserved = &#039;N&#039;). When moving those two to the non-reseved keywords list, res_type essentially becomes redundant as well (we might consider them as reserved = &#039;N&#039;). The colum res_semi is a little different. I was *not* able to create any table where res_semi = &#039;Y&#039; (verfied by SQL script), so these might be considered rather like reserved = &#039;Y&#039;. In Oracle 10.2 I get exactly 29 keywords with res_semi = &#039;Y&#039;: ACCESS, ADD, AUDIT, COLUMN, COMMENT, CURRENT, FILE, IMMEDIATE, INCREMENT, INITIAL, LEVEL, MAXEXTENTS, MLSLABEL, MODIFY, NOAUDIT, OFFLINE, ONLINE, PRIVILEGES, ROW, ROWID, ROWNUM, ROWS, SESSION, SUCCESSFUL, SYSDATE, UID, USER, VALIDATE, WHENEVER.

Astonishingly, my editor highlights all these keywords, but *not* COLUMN_VALUE and NESTED_TABLE_ID! (download Notepad++ and see for yourselves)

&quot;help reserved words&quot; wisdom:

I was able to get my hands on a &quot;help reserved words&quot; dump from somebody on the Oracle forums using Oracle 9.2. I created a dump with my installation of 10.2. The &quot;help reserved words&quot; lists match *exactly*, there are absolutely no differences between 9.2, 10.2, *and* 11.1! It seems as if this inbuilt list got frozen a long time ago.

Oracle online documentation wisdom:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14354/appb.htm
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b31231/appb.htm

The lists for versions 10.2 and 11.1 are identical! According to an Oracle forum post

http://forums.oracle.com/forums/thread.jspa?messageID=671163&amp;

the lists for version 9.x and 10.x are identical, too. So the keyword documentation stood still from 9.x through 11.1.

Conclusion:

Both &quot;help reserved words&quot; *and* the online documentation are identical for Oracle 9.x up to 11.1. The keywords listed there are very incomplete and outdated. It seems like V$RESERVED_WORDS is the way to go with keywords overall, but it misses some keywords such as BOOLEAN, ELSIF etc.

I&#039;ve merged all &quot;help reserved words&quot; and online documentation keywords into one file to get all keywords from those sources. I currently look to see for a way to check those keywords against the V$RESERVED_WORDS view. If a keyword is missing (BOOLEAN, ELSIF, ...), I try to create a table with that name, if it succeeds, it is considered as a non-reserved keyword, if table creation fails, I mark it as reserved.

The only question remaining is: Does the failure of creating a table with a keyword automatically mean it is reserved? In any way, this is still much better (and quite complicated) than what Oracle has to offer...

Stay tuned!

PS: You might want to change your original PL/SQL program to only include reserved = &#039;Y&#039; and res_semi = &#039;Y&#039;...</description>
		<content:encoded><![CDATA[<p>Good work. One mention though:</p>
<p>You said: &#8220;There is no help option for KEY WORDS through Oracle Database 11g, Release 1.&#8221; Actually, the V$RESERVED_WORDS view *is* the list of keywords used, just not only reserved ones, as indicated by the &#8220;reserved&#8221; column in that view, but also non-reserved keywords.</p>
<p>I fiddled with the view a bit (Oracle 10.2!), I noticed that there are *no* keywords with res_attr = &#8216;Y&#8217;. This column is redundant at the current state. Furthermore I noticed that there are only 2 keywords with res_attr = &#8216;Y&#8217;, namely COLUMN_VALUE and NESTED_TABLE_ID. Creating tables COLUMN_VALUE and NESTED_TABLE_ID works, so these are rather non-reserved keywords (besides, there are more COLUMN_* and NESTED_TABLE_* keywords marked as reserved = &#8216;N&#8217;). When moving those two to the non-reseved keywords list, res_type essentially becomes redundant as well (we might consider them as reserved = &#8216;N&#8217;). The colum res_semi is a little different. I was *not* able to create any table where res_semi = &#8216;Y&#8217; (verfied by SQL script), so these might be considered rather like reserved = &#8216;Y&#8217;. In Oracle 10.2 I get exactly 29 keywords with res_semi = &#8216;Y&#8217;: ACCESS, ADD, AUDIT, COLUMN, COMMENT, CURRENT, FILE, IMMEDIATE, INCREMENT, INITIAL, LEVEL, MAXEXTENTS, MLSLABEL, MODIFY, NOAUDIT, OFFLINE, ONLINE, PRIVILEGES, ROW, ROWID, ROWNUM, ROWS, SESSION, SUCCESSFUL, SYSDATE, UID, USER, VALIDATE, WHENEVER.</p>
<p>Astonishingly, my editor highlights all these keywords, but *not* COLUMN_VALUE and NESTED_TABLE_ID! (download Notepad++ and see for yourselves)</p>
<p>&#8220;help reserved words&#8221; wisdom:</p>
<p>I was able to get my hands on a &#8220;help reserved words&#8221; dump from somebody on the Oracle forums using Oracle 9.2. I created a dump with my installation of 10.2. The &#8220;help reserved words&#8221; lists match *exactly*, there are absolutely no differences between 9.2, 10.2, *and* 11.1! It seems as if this inbuilt list got frozen a long time ago.</p>
<p>Oracle online documentation wisdom:</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14354/appb.htm" rel="nofollow">http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14354/appb.htm</a><br />
<a href="http://download.oracle.com/docs/cd/B28359_01/appdev.111/b31231/appb.htm" rel="nofollow">http://download.oracle.com/docs/cd/B28359_01/appdev.111/b31231/appb.htm</a></p>
<p>The lists for versions 10.2 and 11.1 are identical! According to an Oracle forum post</p>
<p><a href="http://forums.oracle.com/forums/thread.jspa?messageID=671163&#038;amp" rel="nofollow">http://forums.oracle.com/forums/thread.jspa?messageID=671163&#038;amp</a>;</p>
<p>the lists for version 9.x and 10.x are identical, too. So the keyword documentation stood still from 9.x through 11.1.</p>
<p>Conclusion:</p>
<p>Both &#8220;help reserved words&#8221; *and* the online documentation are identical for Oracle 9.x up to 11.1. The keywords listed there are very incomplete and outdated. It seems like V$RESERVED_WORDS is the way to go with keywords overall, but it misses some keywords such as BOOLEAN, ELSIF etc.</p>
<p>I&#8217;ve merged all &#8220;help reserved words&#8221; and online documentation keywords into one file to get all keywords from those sources. I currently look to see for a way to check those keywords against the V$RESERVED_WORDS view. If a keyword is missing (BOOLEAN, ELSIF, &#8230;), I try to create a table with that name, if it succeeds, it is considered as a non-reserved keyword, if table creation fails, I mark it as reserved.</p>
<p>The only question remaining is: Does the failure of creating a table with a keyword automatically mean it is reserved? In any way, this is still much better (and quite complicated) than what Oracle has to offer&#8230;</p>
<p>Stay tuned!</p>
<p>PS: You might want to change your original PL/SQL program to only include reserved = &#8216;Y&#8217; and res_semi = &#8216;Y&#8217;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maclochlainn</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-708</link>
		<dc:creator>maclochlainn</dc:creator>
		<pubDate>Tue, 03 Feb 2009 17:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-708</guid>
		<description>I&#039;ve updated the post with the help information but as you may have noticed there&#039;s no option for key words. You may also note that the SQL reserved word list is missing the &lt;code&gt;CROSS&lt;/code&gt;, &lt;code&gt;INNER&lt;/code&gt;, &lt;code&gt;LEFT&lt;/code&gt;, &lt;code&gt;RIGHT&lt;/code&gt;, &lt;code&gt;FULL&lt;/code&gt;, &lt;code&gt;OUTER&lt;/code&gt;, &lt;code&gt;JOIN&lt;/code&gt; reserved words. Also, the new PL/SQL &lt;code&gt;CONTINUE&lt;/code&gt; reserved word is missing from the list generated by the SQL*Plus help utility. :-)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve updated the post with the help information but as you may have noticed there&#8217;s no option for key words. You may also note that the SQL reserved word list is missing the <code>CROSS</code>, <code>INNER</code>, <code>LEFT</code>, <code>RIGHT</code>, <code>FULL</code>, <code>OUTER</code>, <code>JOIN</code> reserved words. Also, the new PL/SQL <code>CONTINUE</code> reserved word is missing from the list generated by the SQL*Plus help utility. <img src='http://blog.mclaughlinsoftware.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-706</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Tue, 03 Feb 2009 15:23:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-706</guid>
		<description>Would you mind posting a list of the reserved words issuing the statement &quot;help reserved words&quot;? I wonder what it would look like compared to the former list.</description>
		<content:encoded><![CDATA[<p>Would you mind posting a list of the reserved words issuing the statement &#8220;help reserved words&#8221;? I wonder what it would look like compared to the former list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-634</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Fri, 30 Jan 2009 23:19:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-634</guid>
		<description>I&#039;m confused. The list doesn&#039;t contain ELSIF and BOOLEAN... so it&#039;s somewhat incomplete anyway.</description>
		<content:encoded><![CDATA[<p>I&#8217;m confused. The list doesn&#8217;t contain ELSIF and BOOLEAN&#8230; so it&#8217;s somewhat incomplete anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-633</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Fri, 30 Jan 2009 22:58:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-633</guid>
		<description>Hmmm ok. But the sure way to test (at least for reserved keywords) would be to iterate over every reserved keyword in the view and issue a &quot;CREATE TABLE keyword ...&quot; statement and check if that succeeds or fails.

I don&#039;t have much PL/SQL understanding and thus I have no idea if such a program would work. Like this, we&#039;d at least know that keywords as table names won&#039;t work...</description>
		<content:encoded><![CDATA[<p>Hmmm ok. But the sure way to test (at least for reserved keywords) would be to iterate over every reserved keyword in the view and issue a &#8220;CREATE TABLE keyword &#8230;&#8221; statement and check if that succeeds or fails.</p>
<p>I don&#8217;t have much PL/SQL understanding and thus I have no idea if such a program would work. Like this, we&#8217;d at least know that keywords as table names won&#8217;t work&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maclochlainn</title>
		<link>http://blog.mclaughlinsoftware.com/2009/01/22/finding-reserved-words-in-oracle/comment-page-1/#comment-621</link>
		<dc:creator>maclochlainn</dc:creator>
		<pubDate>Thu, 29 Jan 2009 19:09:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mclaughlinsoftware.com/?p=1154#comment-621</guid>
		<description>I&#039;d like to provide a definitive answer but can&#039;t. Oracle began maintaining this table in 1998 according to the sql.bsq file and it changes for some purpose between releases. Is it possible that the words in the view may give us foresight into future key and reserved words? I suspect it might, and that&#039;s why I published the blog entry.</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to provide a definitive answer but can&#8217;t. Oracle began maintaining this table in 1998 according to the sql.bsq file and it changes for some purpose between releases. Is it possible that the words in the view may give us foresight into future key and reserved words? I suspect it might, and that&#8217;s why I published the blog entry.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
