I have Oracle version 12.2.0.1.0
We have generic script which create sequence that need to be reuse for different objects (by renaming sequence name):
CREATE SEQUENCE NAME_SEQ MINVALUE 1 MAXVALUE 999999999
INCREMENT BY 1 START WITH 100 CACHE 200 NOORDER NOCYCLE NOPARTITION ;
This script isn't working with below error until I remove NOPARTITION :
ORA-00933: SQL command not properly ended
I found in AskTom that the NOPARTITION is not supported in 12.2
there's been various of things in previous versions of the database that are no longer relevant/supported
Why it's not supported and/or what is the replacement of this feature ?
If there's no replacement can you state why this feature shouldn't be used?
The (no)partition option for sequences was never documented. And thus never supported.
There was a bug in 12.1 which exposed this via dbms_metadata. It no longer happens in 12.2
Undocumented features can (and as this proves) do change without warning. Using them is strictly at your own risk.
If you do a dbms_metadata.get_ddl from database version 12.1 and want to use it in 12.2 then a NOPARTITION is supplied. Now we have to remove it.
Related
I am trying to migrate source code into different versions of Oracle depending on my requirement. Currently I know Oralce 12c version supports IDENTITY column, but when I am trying to convert a table with IDENTITY column, scratch editor is converting it into SEQUENCE and Triggers.
If any option is present using sdcli.exe also, please let me know.
I am not familiar with Scratch, but can't you just use a normal column with a sequence as default value?
That is basically what Oracle creates under the covers when you use an identity column.
Some background:
https://oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1
I'm facing an issue when trying to run or debug a package where Oracle SQL Developer doesn't display public members (procedures) that don't have input parameters.
There is a couple of procedures, some overloads, but Oracle SQL Developer doesnt display no invoke-able members.
I've tried with following versions of Oracle SQL Developer
4.1.1.19 link to article saying this version solves the issue, but it didn't
4.0.3.16 - same behavior
4.0.0.13 - same behavior
3.2.20.09 - this version actually displayed invokable members, but debugger doesnt work.
This is the Oracle version :
select * from v$version;
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Has anyone successfully resolved similar situation and how?
(Upgrading database is not an option atm)
A bit late, but i could help. There is a SqlDeveloper bug. What I have to do is to "Save" it before Compile it...
Hope it helps
I found 2 possible cause that may cause the no public member problem
1) SQL Developer hit some kind of bugs itself.
This can be resolved by completely close and restarting the SQL developer
2) Some keywords used in your codes (e.g. field name in SQL statements) that works fine in compiled execution , but would ruin the display of function list.
I resolved my problem by applying double quote to the entire packages where a field named “CASE” is used.
i.e.
SELECT table1.case FROM table1
change to
SELECT table1."CASE" FROM table1
Alex
Definitely late , but came across the same issue & thought of posting what helped me .
The proc was contained in a package that belong to another user
&
the grants were not provided for the user which was calling the proc .
Works when the grants are done.
I would recommend to save the stored procedure and then compile. In some cases, after saving the procedure, the table will automatically compile. But, you have to save each and every time you make changes.
I hope this helps you out.
There is a package in Oracle - dbms_sqltune_util0 which I want to make use of.
When I run
desc dbms_sqltune_util0;
i get the appropriate description.
But when I try to use the functions contained in this package it doesnt work. What does this mean? Should I get a license or something?
The query which I am trying to run is
select dbms_sqltune_util0.sqltext_to_sqlid('select 1 from dual') from dual;
You are trying to use an Oracle 12c package. Your tag says you are using an Oracle 11g database.
As far a I know there is no Express Edition of Oracle 12c yet so the answer is: Yes, you need a licence to use this package.
BTW: Even in Oracle 11g there is not every package available in every edition of the Oracle databases.
Got following error: if table name contains # (like z#users) code completion does not work.
With normal table names all works fine.
Is there any workarounds? Renaming all tables is not possible.
Sqldeveloper version 4.0.0
Oracle 10.2.0.5
I just tried this with a table called ABC#DEF - with both table and column completion in the worksheet, and it worked with no issues.
I'm on 4.0.2 and 11.2.0.4, so an upgrade to our latest SQL Developer patch might help.
I have a package which I've just replaced and the method being called (ASP.NET client) is raising an error about an incorrect number of parameters.
If Oracle is still running the old version, how can I get it to discard the old "compiled" version?
Oracle 10g won't run the old version of a package after you've done a CREATE OR REPLACE (I'm assuming that you did that both for the package spec and the package body).
If you were using 11.2 and explicitly asked it do, Oracle can run two different versions of a piece of code in two different editions which would let some clients continue using the old edition and gradually migrate to the new edition. Edition-based redefinition is new in 11.2 though.