5 Replies Latest reply on Mar 19, 2014 3:14 PM by KarstenH-dk

    Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec

    KarstenH-dk

      The package name containing one #  (not two or more ) changes name in the tree-view when compiling the package spec. resulting in the package body seems to get invalid in the tree-view in sql developer.

      example: QD#OCB_16001_STS changes name to QD#.

       

      regards Karsten

        • 1. Re: Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec
          Vadim Tropashko-Oracle

          Bugged.

           

          Workaround: use double quoted names, e.g.

           

          CREATE PACKAGE "QD#OCB_16001_STS" IS

            n NUMBER := 5;

          END "QD#OCB_16001_STS";

          • 2. Re: Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec
            rp0428
            The package name containing one #  (not two or more ) changes name in the tree-view when compiling the package spec. resulting in the package body seems to get invalid in the tree-view in sql developer.

            example: QD#OCB_16001_STS changes name to QD#.

            I suggest you take this opportunity to change your package names to conform to 'best practices'.

             

            See 'Schema Object Names and Qualifiers' in the SQL Language doc

            http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements008.htm

            Oracle strongly discourages you from using $ and # in nonquoted identifiers.

            Whenever you discover that your code or processes are NOT using best practices you should make every effort to address that fundamental problem rather than use a  work-around.

            • 3. Re: Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec
              KarstenH-dk

              Schema Object Names and Qualifiers' in the SQL Language doc says :

              Nonquoted identifiers can contain only alphanumeric characters from your database character set and the underscore (_), dollar sign ($), and pound sign (#)  .....

              Oracle strongly discourages you from using $ and # in nonquoted identifiers.

               

              This mean it is not "forbidden" using the # -sign. Changing my package names to conform to 'best practices' doesn't seem to be worth the effort; regarding the cost.

               

              Quoted identifiers has a serious draw-back making database objects case-sensitive.

              • 4. Re: Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec
                rp0428

                This mean it is not "forbidden" using the # -sign. Changing my package names to conform to 'best practices' doesn't seem to be worth the effort; regarding the cost.

                 

                Gee - aren't I the one that provided that doc link to you? I know what it says. And we both agree that one thing it says is this:

                Oracle strongly discourages you from using $ and # in nonquoted identifiers.

                So answer these questions:

                 

                1. Do you think the Oracle developers know that it is 'not "forbidden"' to use the # sign?

                 

                2. Why do you think Oracle 'strongly discourages you from that practice if they know that it is 'not "forbidden"'.

                 

                3. What 'cost' are you talking about? All you have to do is rename the package to conform to best practices and then change any code references to refer to the new name. You've already taken six days to do nothing more than argue about the issue.

                 

                4. Do you think it is more professional, and more effective to cling to your 'desired' solution rather than actually implement a solution that you know works properly? You should consider that 'reality' exists whether you believe it or not and that it is often more powerful than ideology.

                Quoted identifiers has a serious draw-back making database objects case-sensitive.

                I'm not the one that suggested using quoted identifiers. I suggested using identifiers that conform to decades of 'best practices'.

                 

                You have presented NO good reason for not dong things the way that the hundreds of thousands that have gone before you have done.

                 

                Things become a 'best practice' for a good reason. Learn from that, adopt it and move on.

                • 5. Re: Sql developer 4.01.14.48 bug - The package name changes when compiling a package spec
                  KarstenH-dk

                  Gee - aren't I the one that provided that doc link to you?  I know what it says

                  Now is this information of any relevance for the issue - I think it can be found in about 2 minutes.

                  1. Do you think the Oracle developers know that it is 'not "forbidden"' to use the # sign?

                  Probably

                  2. Why do you think Oracle 'strongly discourages you from that practice if they know that it is 'not "forbidden"'.

                  Actually I don't know - maybee saving these signs for the data-dictionary objects where they are used intensly.

                  3. What 'cost' are you talking about? All you have to do is rename the package to conform to best practices and then change any code references to refer to the new name. You've already taken six days to do nothing more than argue about the issue.

                  I have more than 2000 database objects containing the pound sign (#) - changing names for these would bee a rather costly effort,This would include changing all referencing code, testing etc,etc.

                  That's the cost I'm talking about !!

                  You should consider that 'reality' exists whether you believe it or not and that it is often more powerful than ideology.

                  Before advising people into something it is important you understand the basic facts and how the reality looks.

                  (If you think I spent 6 days arguing about this issue - it tells a lot about the pace of your work).

                  4. Do you think it is more professional, and more effective to cling to your 'desired' solution rather than actually implement a solution that you know works properly?

                  It is not my 'desired' solution - it is something I inherited, most of it generated by Quest code tester, which seems to use the pound sign (#) intensively. Again I will say that you should try to understand the reality rather than clinging to ideology.

                  Sometimes 'best practices' has to be abondoned and are to costly to implement. Learn from that, adopt it and move on.