CREATE OR REPLACE PACKAGE TEST_PACKAGE7 AS PROCEDURE CURSOR; PROCEDURE TEST; END TEST_PACKAGE7;
Expand the the tree under package body :)
CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE7 AS PROCEDURE CURSOR IS BEGIN NULL; END; PROCEDURE TEST IS BEGIN NULL; END; END TEST_PACKAGE7;
xxsawer wrote:I am asking because I would rather the development team spent their time fixing serious bugs and developing new features than dealing with minor problems which are easily avoided.
Why are you asking?
SELECT * FROM V$RESERVED_WORDS WHERE KEYWORD = 'CURSOR'; KEYWORD LENGTH RESERVED RES_TYPE RES_ATTR RES_SEMI DUPLICATE CURSOR 6 N N N N N
xxsawer wrote:I'm not going to get into a slanging match with you. There are more considerations than your personal issues.,
You are so wrong you wouldn't believe.
1) I personally am not using word "CURSOR" as procedure name. I am working in a team spreaded to different places and somebody else used it. I cannot simply change the procedure names because Developers parser can't handle it!Perhaps your organisation should develop some sensible development standards that don't use reserved words.
2) Is this a valid procedure name? YesNo. See below.
Should the parser take into account all variants (like all other comercial products do)? YesNot my job, I'm just another user. As I said above, my concern is that resources which would be better spent elsewhere are wasted on minor issues.
Is this particular case minor issue? Yes
Are there any other issues with the parser? Yes, there are planty of them
Do I have a list of cases what is not working? No, it's your job to test the parser and make it work. I am developing applications in PL/SQL mostly using SQL Developer, but not developing SQL Developer!!!
Is this problem touching only the tree view? Of course not. I already reported non-functionality of Open declaration and replacement of local variables. I don't know if these features are using the same parser, but I am pretty sure they don't work because of parsing problems. I think I reported this multiple times, all these posts were ignored.Have you reported these on metalink? That is the official support channel. Problem reports on metalink are likely to be given more weight.
Now to your post. Please don't interchange SQL keywords with PL/SQL keywords.Cursor is also a reserved word in PL/SQL.
I think you didn't find the point of the sentence you pasted:I would be interested in what you think it means. I think it means if you use keywords as object names you may get unpredictable results. You appear to be getting unpredictable results - the procedure compiles but doesn't parse properly in all cases. Cursor is also a reserved word in PL/SQL.
+Oracle SQL keywords are not reserved. However, Oracle uses them internally in specific ways. Therefore, if you use these words as names for objects and object parts, then your SQL statements may be more difficult to read and may lead to unpredictable results.+
Reserved Words and KeywordsThe bug here seems to be that the compiler accepts CURSOR as a procedure name. That needs to be raised against the DBMS team I would have thought.
Reserved words and keywords are identifiers that have special meaning in PL/SQL.
You cannot use reserved words as ordinary user-defined identifiers. You can use them as quoted user-defined identifiers, but it is not recommended. For more information, see "Quoted User-Defined Identifiers".
You can use keywords as ordinary user-defined identifiers, but it is not recommended.
For lists of PL/SQL reserved words and keywords, see Table D-1 and Table D-2, respectively.
The above code displays in the tree properly just as version 3.0.02 does. The original code (see my original reply) still does not display properly.
CREATE OR REPLACE PACKAGE TEST_PACKAGE8 AS PROCEDURE ABC; PROCEDURE DEF; END TEST_PACKAGE8; CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE8 AS PROCEDURE ABC IS BEGIN NULL; END; PROCEDURE DEF IS BEGIN NULL; END; END TEST_PACKAGE8;