Comments (3)
I ran the following test on my 19c database instance:
set echo on
set serveroutput on
declare
l_test number;
begin
l_test := ++1;
dbms_output.put_line(l_test);
end;
/
select ++1 from dual;
The result was:
SQL> set echo on
SQL> set serveroutput on
SQL> declare
2 l_test number;
3 begin
4 l_test := ++1;
5 dbms_output.put_line(l_test);
6 end;
7 /
1
PL/SQL procedure successfully completed.
SQL> select ++1 from dual;
Error starting at line : 10 in command -
select ++1 from dual
Error at Command Line : 10 Column : 9
Error report -
SQL Error: ORA-00936: missing expression
00936. 00000 - "missing expression"
*Cause:
*Action:
Using repeated unary operators seems to be possible for PL/SQL only. In SQL this leads to an error, which I consider good. As long as the PL/SQL parser is not able to detect this kind of errors, an additional rule makes sense.
from plsql-and-sql-coding-guidelines.
@silviomarghitola Is this a SonarSource rule? I could not find it.
from plsql-and-sql-coding-guidelines.
I checked our PL/SQL parser. This:
declare
l_test number;
begin
l_test := ++1;
dbms_output.put_line(l_test);
end;
/
leads to a parse error at line 4, column 16. From my point of view this is correct. In fact I think for this case an Oracle SR should be opened instead of adding a rule and fixing the parser to support "wrong" syntax.
from plsql-and-sql-coding-guidelines.
Related Issues (20)
- G-3120: eliminate violations
- G-9030: eliminate violations HOT 1
- G-1040: add NOSONAR Hint in G-7250
- G-7110: eliminate violations
- G-3210: eliminate violations
- G-4320: eliminate violations
- Various guidelines: eliminate violations (2-4 issues per guideline) HOT 1
- New rule: Always specify column aliases instead of positional references in GROUP BY clauses.
- CASE / WHEN is indentend backwards HOT 2
- Fix catagorization of guideline severties.
- New rule: Always specify column names instead of expressions in GROUP BY clauses.
- The tools do not work from a Windows host with git-bash HOT 1
- Use 3 literals in the bad example of G-1050
- Simplify G-1050 and related examples
- Include column alias in G-3182 HOT 1
- Fix revision history in about page
- Highlight the lines that violate a guideline in the bad examples (and the fixed lines in the good examples)
- G-8310 value_error good_example HOT 3
- New rule: Avoid autonomous transactions
- New rule: Avoid using a FOR LOOP for a query that should return not more than one row HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from plsql-and-sql-coding-guidelines.