<?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: Update for PL/SQL Cop and PL/SQL Analyzer	</title>
	<atom:link href="https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/</link>
	<description>Database-centric development</description>
	<lastBuildDate>Tue, 07 Nov 2023 21:24:28 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/feed/"/>
	<item>
		<title>
		By: Philipp Salvisberg		</title>
		<link>https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3698</link>

		<dc:creator><![CDATA[Philipp Salvisberg]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 18:55:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.salvis.com/blog/?p=5993#comment-3698</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3696&quot;&gt;Ivan Kovalenko&lt;/a&gt;.

Hello Ivan,

VERSIONS is a keyword. It is used in the &lt;a href=&quot;https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#i2126134&quot; rel=&quot;nofollow&quot;&gt;flashback_query_clause&lt;/a&gt;. See limitations regarding keywords on https://www.salvis.com/blog/faq/what-are-the-limitions/.

Our PL/SQL parser version 1.0.17 (used in PL/SQL Cop 1.0.16, PL/SQL Cop for SQL Developer 1.0.12 and SQL Analyzer 1.0.7) handles the following (197) keywords:
&lt;p style=&quot;padding-left: 30px;&quot;&gt;a, accessible, agent, aggregate, analyze, any, apply, array, ascii, at, auto, batch, bequeath, block, boolean, breadth, c, call, cascade, charset, clone, close, collect, comment, commit, compatibility, conditional, constraints, content, context, continue, copy, cost, cross, current_user, cursor, database, date, day, ddl, dec, default, deferrable, deferred, delete, dense_rank, depth, desc, disable, document, editionable, element, empty, enable, encoding, error, errors, escape, evalname, except, execute, exists, exit, false, final, first, force, foreign, format, forward, found, full, function, grouping, hash, hour, id, identifier, immediate, indent, inner, interface, interval, invisible, join, json, keep, key, language, last, lax, left, level, limit, local, locked, log, loop, main, map, match, match_recognize, matched, member, minute, mod, mode, model, month, name, nested, new, next, no, noneditionable, null, nulls, offset, oid, old, open, out, outer, package, parameters, parent, path, pattern, per, percent, permute, pipe, plan, pluggable, precision, pretty, primary, raise, range, read, record, ref, reference, rename, replace, result, return, reverse, right, row, rows, rowtype, rules, running, sample, save, schema, search, second, seed, segment, self, set, size, skip, statement, statement_id, statistics, strict, suspend, ties, time, timestamp, timezone_region, transaction, true, truncate, trust, type, unconditional, unplug, updated, use, validate, value, version, visible, wait, within, without, wrapper, write, xml, xmltype, year, yes, zone.&lt;/p&gt;

However, this does not mean that these keywords may be used as identifier in every context. There are exceptions, namely for cursor, full, function, inner, join, left, model, outer, right, type, rowtype. All other keywords such as versions are currently not handled at all.

If you use another name for the versions table or use the quoted syntax “VERSIONS” then PL/SQL Cop is capable to process the code. It should be possible to support this keyword in a future release.

Best Regards,
Philipp]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3696">Ivan Kovalenko</a>.</p>
<p>Hello Ivan,</p>
<p>VERSIONS is a keyword. It is used in the <a href="https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#i2126134" rel="nofollow">flashback_query_clause</a>. See limitations regarding keywords on <a href="https://www.salvis.com/blog/faq/what-are-the-limitions/" rel="ugc">https://www.salvis.com/blog/faq/what-are-the-limitions/</a>.</p>
<p>Our PL/SQL parser version 1.0.17 (used in PL/SQL Cop 1.0.16, PL/SQL Cop for SQL Developer 1.0.12 and SQL Analyzer 1.0.7) handles the following (197) keywords:</p>
<p style="padding-left: 30px;">a, accessible, agent, aggregate, analyze, any, apply, array, ascii, at, auto, batch, bequeath, block, boolean, breadth, c, call, cascade, charset, clone, close, collect, comment, commit, compatibility, conditional, constraints, content, context, continue, copy, cost, cross, current_user, cursor, database, date, day, ddl, dec, default, deferrable, deferred, delete, dense_rank, depth, desc, disable, document, editionable, element, empty, enable, encoding, error, errors, escape, evalname, except, execute, exists, exit, false, final, first, force, foreign, format, forward, found, full, function, grouping, hash, hour, id, identifier, immediate, indent, inner, interface, interval, invisible, join, json, keep, key, language, last, lax, left, level, limit, local, locked, log, loop, main, map, match, match_recognize, matched, member, minute, mod, mode, model, month, name, nested, new, next, no, noneditionable, null, nulls, offset, oid, old, open, out, outer, package, parameters, parent, path, pattern, per, percent, permute, pipe, plan, pluggable, precision, pretty, primary, raise, range, read, record, ref, reference, rename, replace, result, return, reverse, right, row, rows, rowtype, rules, running, sample, save, schema, search, second, seed, segment, self, set, size, skip, statement, statement_id, statistics, strict, suspend, ties, time, timestamp, timezone_region, transaction, true, truncate, trust, type, unconditional, unplug, updated, use, validate, value, version, visible, wait, within, without, wrapper, write, xml, xmltype, year, yes, zone.</p>
<p>However, this does not mean that these keywords may be used as identifier in every context. There are exceptions, namely for cursor, full, function, inner, join, left, model, outer, right, type, rowtype. All other keywords such as versions are currently not handled at all.</p>
<p>If you use another name for the versions table or use the quoted syntax “VERSIONS” then PL/SQL Cop is capable to process the code. It should be possible to support this keyword in a future release.</p>
<p>Best Regards,<br />
Philipp</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ivan Kovalenko		</title>
		<link>https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3697</link>

		<dc:creator><![CDATA[Ivan Kovalenko]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 11:59:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.salvis.com/blog/?p=5993#comment-3697</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3696&quot;&gt;Ivan Kovalenko&lt;/a&gt;.

I found that &quot;versions&quot; keyword is taken from flashback query syntax.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3696">Ivan Kovalenko</a>.</p>
<p>I found that &#8220;versions&#8221; keyword is taken from flashback query syntax.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ivan Kovalenko		</title>
		<link>https://www.salvis.com/blog/2015/11/23/update-for-plsql-cop-and-plsql-analyzer/#comment-3696</link>

		<dc:creator><![CDATA[Ivan Kovalenko]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 11:11:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.salvis.com/blog/?p=5993#comment-3696</guid>

					<description><![CDATA[Philipp, i&#039;d like to submit a question about PLSQL/Cop. I&#039;ve discovered that it reports an error &quot;Syntax error. Please contact the author if code compiles successfully in your environment.&quot; on the following sample code
&lt;pre class=&quot;&quot;&gt;create or replace function me (i IN number) return number as
version_id versions.version_id%type;
begin
 return i + version_id;
end;
&lt;/pre&gt;
Our developers use table &quot;versions&quot; for keeping versions (surprise) for something. So the following code doesn&#039;t reports an error when executed in database (9,10,11)

&lt;pre class=&quot;crayon-selected&quot;&gt;create table versions 
(Version_id number);
&lt;/pre&gt;
Is it intended due to keyword &quot;versions&quot; reservation (i could not find it is oracle reserved).]]></description>
			<content:encoded><![CDATA[<p>Philipp, i&#8217;d like to submit a question about PLSQL/Cop. I&#8217;ve discovered that it reports an error &#8220;Syntax error. Please contact the author if code compiles successfully in your environment.&#8221; on the following sample code</p>
<pre class="">create or replace function me (i IN number) return number as
version_id versions.version_id%type;
begin
 return i + version_id;
end;
</pre>
<p>Our developers use table &#8220;versions&#8221; for keeping versions (surprise) for something. So the following code doesn&#8217;t reports an error when executed in database (9,10,11)</p>
<pre class="crayon-selected">create table versions 
(Version_id number);
</pre>
<p>Is it intended due to keyword &#8220;versions&#8221; reservation (i could not find it is oracle reserved).</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
