ORA-00922 When trying to place table in memory - oracle

I've two environments, Oracle 12.1.0.2.0 - 64bit, which are basically identical.
In one I could successfully place the tables I wanted in memory, but in the other one I get 'ORA-00922: missing or invalid option'.
The command I'm executing is
ALTER TABLE USER_ROLE_T INMEMORY PRIORITY MEDIUM;
Both environments are configured with INMEMORY parameter and SGA_TARGET is configured to '0'.
What can be the cause?

The issue was caused due to incorrect parameter value.
The COMPATIBLE parameter was set to Oracle 11.2.4, as the server was upgraded to Oracle 12c from Oracle 11g.
Once I've set the parameter to the correct Oracle version, the issue was resolved.

Related

db_keep_cache_size in depreciated in oracle 12c

I'm trying to keep/pin frequently accessed table in buffer, but i see the db_keep_cache_size parameter is deprecated in 12c. is there any alternative way to perform same on 12c?
my oracle version: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit.
I tried below steps in 12c and it executed without any error, but not sure it will have any impact on 12c.
show parameter keep;
alter system set db_keep_cache_size=1M scope=both;
show parameter keep;
SELECT SEGMENT_NAME, BUFFER_POOL from dba_segments where SEGMENT_NAME='cust_table' and owner='services';
alter TABLE services.cust_table storage (buffer_pool keep);
Could someone please suggest, whether above steps are valid in 12c?
Thanks in advance.
Laks

ORACLE 12c parameter to change , as db performace is a bottleneck with default parameters

we recently upgraded our db from 11g to 12c, now db with 12.2 version on linux.
the db is mostly of oltp type, having around 150GB application data and tables having approx 5GB to 10Gb in size,
after upgradation the performance of db is degraded, we believe we can improve that by changing db parameters.
Can you pls suggest any oracle parameters to look for to improve performance apart from memory related.
and any parameters specific to 12.2 version ?
Please check wehat is the value of parameter OPTIMIZER_FEATURES_ENABLE i.e. whether you are using 11g optimizer of 12c optimizer. Sometimes 12c optimizer dont perform well along with that check the values of OPTIMIZER_ADAPTIVE_PLANS and OPTIMIZER_ADAPTIVE_STATISTICS. Please refer to this article. I have faced a similar performance issue after migration from 11g to 12.2c, so please share yur feedback after checking these parameter values.

ORA-01036: illegal variable name/number with Oracle 18 and Oracle 19 Windows client

After upgrading from Oracle 11/12 to 18/19 I get this error: ORA-01036: illegal variable name/number.
The error occurred in a query like this:
SELECT * FROM (SELECT * FROM TABLE) MY_TABLE WHERE ROWNUM <= :P_ROWNUM
(Subquery + binding parameters)
The identical query works properly with the Oracle 11.2.0.4 or 12.1.0.2 client. It fails with the Oracle Client 18c or 19c.
PS: The Oracle Server is version 18c 64x for Windows.
I use Delphi 10.1.2 with ADO components (dbGO). I also tried with Delphi 13.3.3 but the behavior is the same.
It seems to be a problem in the Oracle OLE DB provider (ORAOLEDB).
If I don't use ADO but DevArt Unidac all worked as expected.
Someone can help me?
Max
Your query is fine. We ran into a similar issue when migrating from 12.1 to 19. In our case, we have a custom OLE DB provider that interfaces with OraOLEDB (and others) using the Microsoft OLE DB Provider Templates (ATL). When attempting to upgrade from 12.1.x to 19c we started seeing the strange and confusing "ORA-01036: illegal variable name/number" error for parameterized SELECT queries. The queries would succeed the first time they were executed but subsequent executions would fail when all we did was change the parameter value (the queries were executed sequentially). I went on a wild goose chase trying to diagnose the issue and finally decided it had to be an Oracle caching bug of some kind. Yesterday, I experimented with the cache-related connection string attributes and found that adding the MetaDataCacheSize attribute and setting its value to 0 (zero) resolved the issue for us. None of the current Oracle patches appear to address this issue, at least none of those that mention the ORA-01036 error.

Oracle, 2 installations on one computer, TNSListener

I have 2 versions of Oracle Database in one pc:
1st is oracle 11g in folder c:/xe...
2nd is oracle 12c in folder c:/app...
What is the problem - there's something wrong with environment in windows, because when I set ORACLE_BASE & ORACLE_HOME to C:/xe, listener from 12c doesn't work (not loadable error). Same scenario in other way - when BASE & HOME is set to c:/app - listener from c:/xe shows same error. On 11g there is database which I need the most so question - is there any possibility to make this database visible to oracle 12c? Or someone knows how to eliminate this loadable error?

What causes a JDBC Type 91 error?

I have a web app hosted on BEA Weblogic 10.x with an Oracle 10g database backend.
It works perfectly with one database, but when we make a clone of it and try to use a different WebLogic and Oracle instance we are getting this error:
ERROR - Problem initializing invocation tracking - disabling
tracking xxxxclass.BadTableMappingException: Database column
xxxxPeriodEnding in database yyyyyyy, table zzzzzzz has an
unknown type: JDBC Type 91.
We get it every time we do a query that involves a column of type DATE. There was no ORA-XXXX code in the message.
I can access the database using SQL*Plus using the same access and do selects and updates on the same tables with no errors.
The answer to this question is not just a simple description of what a type 91 error is (although that will help) but what could be causing this given the circumstances described above.
I am using ojdbc14.jar for JDBC on both instances of weblogic.
I have no idea about the error, but have you considered the jdbc jar version and more importantly if the oracle DB needs to be updated.
I faced very weird problems with oracle, and struggled for a while to find at the end that installing some patches for oracle would solve the problem.
Set oracle.jdbc.V8Compatible=true.
This remaps the oracle DATE type to a DATETIME time in JDBC. This parameter was missing on the new Weblogic server.

Resources