ORA-22992 cannot use LOB Locators selected remote tables
Hello.I have a problem.
When I want to create a table select o sing a table a dblink, and the remote table has a clob field returns the error.
I'll fix it, using dblink. Is there a way to fix? export/tax free.
Thank you.
PD: 10 gr 2.
Hello
Insert of canoe read you a remote via dblink database table when that table has a clob or blob column.
If you must use inport / export option.
Use the Data Pump functionality in 10g. Then, you can export and import only your table without major issues.
Thank you
* If the answer is correct please mark.
Tags: Database
Similar Questions
-
ORA-22992: cannot use LOB Locators selected from the remote tables...
Oracle 10.2.1.0.4
Solaris 10
We try to access a table in another database via a db_link.
The table we are trying to access has a LOB.
We get the following error: ora-22992: cannot use LOB Locators selected from the remote tables.
Is there a way to get around this? We need the data in the BLOB field.
Thank you.See on metalink:
ORA-22992 has a workaround solution in 10 gr 2
DOC - ID: 436707.1Werner
-
ORA-01552: cannot use tablespac system system rollback segment
Hi all
Environment: database Production: Source
Database dev: target
11203 Version database.
Golden gate Version 11.1
Scheme of the Golden Gate: GGATE
Method of replication. DDL replication is ACTIVE
In my production database my Undo tablespace is corrupted. I changed the management to cancel the manual setting and rebounded from the DB and open editing mode. Then I deleted the undo tablespace data file using in offline mode. Then I opened the database.
SQL > alter database datafile ' / u01/app/oracle/oradata/db1/undotbs01.dbf' drop offline;
Database altered.
Issue.
Now, if I try to let drop the tablespace UNDOTBS1 undo or to create the new database of the undo tablespace throws me error as below:
SQL > drop tablespace undotbs1;
Drop tablespace undotbs1
*
ERROR on line 1:
ORA-00604: an error has occurred at the SQL level 1 recursive
ORA-01552: cannot use system for non-system tablespace «GGATE» rollback segment
ORA-06512: at the level of the line 993
ORA-01552: cannot use system for non-system tablespace «GGATE» rollback segment
Here is the status of rollback segment.
SQL > select nom_segment, dba_rollback_segs State;
NOM_SEGMENT STATUS
------------------------------ ----------------
ONLINE SYSTEM
_SYSSMU10_2490256178$ IN OFFLINE MODE
_SYSSMU9_3593450615$ IN OFFLINE MODE
_SYSSMU8_1909280886$ IN OFFLINE MODE
_SYSSMU7_1924883037$ IN OFFLINE MODE
_SYSSMU6_2460248069$ IN OFFLINE MODE
_SYSSMU5_3787622316$ IN OFFLINE MODE
_SYSSMU4_1455318006$ IN OFFLINE MODE
_SYSSMU3_2210742642$ IN OFFLINE MODE
_SYSSMU2_4228238222$ IN OFFLINE MODE
_SYSSMU1_3138885392$ IN OFFLINE MODE
11 selected lines.
SQL > show Cancel parameter
VALUE OF TYPE NAME
------------------------------------ ----------- ------------------------------
UNDO_MANAGEMENT string MANUAL
UNDO_RETENTION integer 900
undo_tablespace string UNDOTBS1
Please anyone suggest me how to manage this problem.
Kind regards
Rohit
Try this:
Conn / as sysdba
SQL > alter system set _system_trig_enabled = false;
SQL > alter trigger sys.cdc_alter_ctable_before DISABLE.
SQL > alter trigger sys.cdc_create_ctable_after DISABLE.
SQL > alter trigger sys.cdc_create_ctable_before DISABLE.
SQL > alter trigger sys.cdc_drop_ctable_before DISABLE.
create undo tablespace, you could do now:
SQL > create undo tablespace undotbs2 datafile 'XX/xX/XXX/XXX/undotbs2.dbf' size XM autoextend on;
SQL > alter system set undo_tablespace = undotbs2 scope = both;
allow them once again:
SQL > alter trigger sys.cdc_alter_ctable_before ENABLE;
SQL > alter trigger sys.cdc_create_ctable_after ENABLE;
SQL > alter trigger sys.cdc_create_ctable_before ENABLE;
SQL > alter trigger sys.cdc_drop_ctable_before ENABLE;
SQL > alter system set _system_trig_enabled = TRUE;
Restart the system.
-
ORA-01552: cannot use rollback for non-system tablespace system segment
I'm getting following error, according to a previous thread under request.
ORA-01552: cannot use rollback for non-system tablespace system segment
How can I get them online, I can get them online does this error?select SEGMENT_NAME, TABLESPACE_NAME, INITIAL_EXTENT,STATUS
from dba_rollback_segs SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT STATUS ------------------------------ ------------------------------ ---------------------- ---------------- SYSTEM SYSTEM 114688 ONLINE _SYSSMU1$ UNDO_TS 131072 OFFLINE _SYSSMU2$ UNDO_TS 131072 OFFLINE _SYSSMU3$ UNDO_TS 131072 OFFLINE _SYSSMU4$ UNDO_TS 131072 OFFLINE _SYSSMU5$ UNDO_TS 131072 OFFLINE _SYSSMU6$ UNDO_TS 131072 OFFLINE _SYSSMU7$ UNDO_TS 131072 OFFLINE _SYSSMU8$ UNDO_TS 131072 OFFLINE _SYSSMU9$ UNDO_TS 131072 OFFLINE _SYSSMU10$ UNDO_TS 131072 OFFLINE _SYSSMU11$ UNDO_TS 131072 OFFLINE _SYSSMU12$ UNDO_TS 131072 OFFLINE _SYSSMU13$ UNDO_TS 131072 OFFLINE _SYSSMU14$ UNDO_TS 131072 OFFLINE 15 rows selectedMaybe you should also mention that you make no effort to look for the error in the documentation online or anywhere else.
You get this when your database uses rollback segments, and you have spaces of multiple tables.
To be able to create spaces of multiple tables, you must first create a rollback segment in the system tablespace.That's why you get the error.
The resolution is clear.Unfortunately, 99.9 percent of all the people posting here refused to make any effort to resolve errors.
-----------
Sybrand Bakker
Senior Oracle DBA -
ORA-01552: cannot use no tablespace system rollback segment
Hello
When I try to create a table, I got the following error message.
ORA-01552: cannot use tablespace no system "USER" system rollback segment
Select nom_segment, nom_tablespace, initial_extent, status
of dba_rollback_segs;
NOM_SEGMENT NOM_TABLESPACE INITIAL_EXTENT STATUS
------------------------------ ------------------------------ ---------------------- ----------------
114688 ONLINE SYSTEM
_SYSSMU1$ UNDOTBS1 131072 OFFLINE
_SYSSMU2$ UNDOTBS1 131072 OFFLINE
_SYSSMU3$ UNDOTBS1 131072 OFFLINE
_SYSSMU4$ UNDOTBS1 131072 OFFLINE
_SYSSMU5$ UNDOTBS1 131072 OFFLINE
_SYSSMU6$ UNDOTBS1 131072 OFFLINE
_SYSSMU7$ UNDOTBS1 131072 OFFLINE
_SYSSMU8$ UNDOTBS1 131072 OFFLINE
_SYSSMU9$ UNDOTBS1 131072 OFFLINE
_SYSSMU10$ UNDOTBS1 131072 OFFLINE
11 selected lines
One advises will be useful, thanksMake sure that the return parameters in your database instance.
SEE THE PARAMETER UNDO
You should have UNDO_MANAGEMENT = "AUTO" and UNDO_TABLESPACE = 'UNDOTBS1.
Hemant K Collette
-
Hello
I am facing a problem during the cloning of production TEST environment.
Please see the below given error:
' RMAN-04014: failed to start: ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST.
And I used the following script to retrieve.
==========================================================================================
------------------------------------------------------------------
VI initTEST.ora
* .db_name = 'TEST '.
* .db_unique_name = 'TEST '.
SQL > startup nomount
=============================
Auxiliary RMAN.
run
{
allocate auxiliary CHANNEL c1 device type disk;
allocate auxiliary CHANNEL c2 device type disk;
allocate auxiliary CHANNEL c3 device type disk;
allocate auxiliary CHANNEL c4 device type disk;
the value of newname for tempfile 1 to ' / testdata/R12/TEST/datafile/temp01.dbf';
the value of newname for tempfile 2 to ' / testdata/R12/TEST/datafile/temp02.dbf';
the value of newname for tempfile 3 to ' / testdata/R12/TEST/datafile/temp03.dbf';
the value of newname for tempfile 4 to ' / testdata/R12/TEST/datafile/temp04.dbf';
the value of newname for tempfile 5 to ' / testdata/R12/TEST/datafile/temp05.dbf';
data duplicated in the 'TEST' backup location ' / backup/PROD_BKP_01_Nov_15 / '.
SPFILE
Define db_name = 'TEST '.
Set db_unique_name = 'TEST '.
Set cluster_database = "false".
Set use_large_pages = 'false '.
Set remote_listener = "
Set local_listener = "
Set listener_networks = "
Set control_files='/testdata/R12/TEST/controlfile_TEST.ctl"
Set diagnostic_dest ='/ oracle/app /'
Set log_archive_dest = "/ testdata/R12/archive.
Set audit_file_dest='/oracle/app/product/11.1.0/db_1/rdbms/audit/"
Db_file_name_convert '+ DATA_P/PROD/DATAFILE', set ' / testdata/R12/TEST/datafile.
Set log_file_name_convert '+ DATA_P/PROD/ONLINELOG', ' / testdata/R12/TEST/datafile ', '+ RECO_P/PROD/ONLINELOG', ' / testdata/R12/TEST/datafile;
switch tempfile;
}
-----------------------------------------------------------------
Then please suggest a solution?
With thanks and greetings
Ngoyi
------------
This is what Oracle says:
ORA-16019: can't use string with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
Cause: One of the following events caused a mismatch:
(1) setting LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST was in use when the LOG_ARCHIVE_DEST_n specified (n = 1.. 31) or parameter DB_RECOVERY_FILE_DEST occurred during extraction of initialization parameters.
(2) LOG_ARCHIVE_DUPLEX_DEST or LOG_ARCHIVE_DEST parameter was used when an attempt is made to use an ALTER SYSTEM or ALTER SESSION command to set a value for the specified parameter LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST.
(3) a command ALTER SYSTEM ARCHIVE LOG START FOR was in effect when the specified parameter LOG_ARCHIVE_DEST_n met during extraction of initialization parameters.
(4) an ALTER SYSTEM ARCHIVE LOG START FOR order was in effect when an attempt is made to a command ALTER SYSTEM or ALTER SESSION allows you to set a value for the specified parameter LOG_ARCHIVE_DEST_n.
Action: Eliminate all inconsistent parameter definitions.
-
ORA-19838: cannot use this control file to open the database
Dear all,
While making RMAN cloning, we are facing problem,
SQL > alter database open resetlogs;
ALTER database open resetlogs
*
ERROR on line 1:
ORA-19838: cannot use this control file to open the database
Concerning
Villi Kumar
Dear all,
While checking the database,
Control the name of the database file is PROD
In the instance, database name is TEST.
So we took the PROD and edited control file trace file based on the TEST environment.
Then run the script published in the TEST database trace file.
Now we can open the database by using below command
ALTER database open resetlogs;
Concerning
Villi Kumar
-
ORA-12032: cannot use column rowid
Hello
8.1.7 I have the following error:
ORA-12032: cannot use the rowid column of materialized view log on 'chain '. "' string '.
The solution is:
Action: A full refresh is necessary before the next quick update. Add columns ROWID in the materialized view log, if necessary.
How can I do a complete refresh before the next fast refresh or ROWID columns add? How do I know whether the ROWID columns add?
Thank you.
PS:
my script is:
................
..............
START WITH TO_DATE (July 6, 2010 17:57:48 "," dd-mon-yyyy hh24:mi:ss')
NEXT SYSDATE + 1/24user522961 wrote:
Hello
8.1.7 I have the following error:
ORA-12032: cannot use the rowid column of materialized view log on 'chain '. "' string '.
The solution is:
Action: A full refresh is necessary before the next quick update. Add columns ROWID in the materialized view log, if necessary.How can I do a complete refresh before the next fast refresh or ROWID columns add? How do I know whether the ROWID columns add?
Thank you.run up
EXECUTE DBMS_MVIEW.REFRESH('MV_NAME','C');
-
using listener of selection for table cause some problems
Hello
I'm using jdev 11.1.1.4.0
My use case:
I have the master/detail table
When the user changes data in the secondary table then it click directly to anather record in the main table
I need to display alert message ("you must save changes first") and prevent the movement, so I do the following:
in the main table, I used bean manged in SelectionListener attribute called onTableSelect(SelectionEvent selectionEvent) like this:
If (ADFUtils.getApplicationModuleForDataControl("CodesModuleDataControl").getTransaction () .isDirty ()) {}
FacesContext context = FacesContext.getCurrentInstance ();
context.addMessage (null, new FacesMessage (FacesMessage.SEVERITY_WARN, getValueFromResourceBundle("hr.view.vcBundle","global.msgUnsavedChanges"), null));
* / / HERE, I need to move the selection to the previous record *.
}
else {}
Table richeTableau = (RichTable) selectionEvent.getSource ();
CollectionModel tableModel = (CollectionModel) table.getValue ();
JUCtrlHierBinding adfTableBinding = tableModel.getWrappedData ((JUCtrlHierBinding));
DCIteratorBinding tableIteratorBinding = adfTableBinding.getDCIteratorBinding ();
Object selectedRowData = table.getSelectedRowData ();
JUCtrlHierNodeBinding nodeBinding = (JUCtrlHierNodeBinding) selectedRowData;
Key rwKey = nodeBinding.getRowKey ();
tableIteratorBinding.setCurrentRowWithKey (rwKey.toStringFormat (true));
}
the code is working properly but in the main table, the culmination of save becomes different from the table itterator,
My question is how can I move point highest record in the table according to it itterator.
Best regardsIn the selectionListener, you can get the previously selected like this lines:
public void onSelectionListener(SelectionEvent selectionEvent) { Key removedKey = null; List removedkeys = null; RowKeySet removed = selectionEvent.getRemovedSet(); for (Object l: removed) { removedkeys = (List)l; for (Object k: removedkeys) { removedKey = (Key)k; logger.finer("previously selected row key: " + removedKey.getAttribute(0)); } }
If you want to select the line above again, you can do something like the following:
DCIteratorBinding someiteratorIT = ADFUtils.findIterator("SomeIterator"); someiteratorIT .setCurrentRowWithKeyValue((String)removedKey.getAttribute(0)); getT4().setSelectedRowKeys(removed); AdfFacesContext.getCurrentInstance().addPartialTarget(getT4()); }
where getT4() is the richeTableau.
Published by: John on March 19, 2012 13:55
-
ORA - 22992 that a remote LOB column cannot be referenced
Hi all
I ask a remote table on a dblink, of my diagram. I select the column values are VARCHAR2 data types. I need concatenate the values in the column, and then in the sql query.
Given the length of the concatenation exceeds 4 000 bytes, I made a function as shown below,
function get_concatenated_text (par1) return clob
as
CLOB var1;
CLOB var2;
Start
Select remote_table.col1, remote_table.col2 in var1, var2 to
remote_table@DBLINk;
Return(var1|| var2);
end
now when I call this function with the appropriate arguments, why make this mistake. The remote column is varchar data type .so why LOB error? Please, experts suggest. The oracle version is 11.0.2.0.3
ORA - 22992 that a remote LOB column cannot be referenced.
SQL > create or replace
function get_concatenated_text () 2
3 par1 varchar2
(4) return clob
5 as
6 var1 clob.
CLOB 7 var2;
Start 8
9. Select ename,
post 10
11 in var1,
12 var2
13 of emp@orcl
14 where rownum = 1;
15 return(var1|| var2);
16 end;
17.The function is created.
SQL > select get_concatenated_text ('X') of double
2.
ERROR:
ORA-22992: cannot use LOB Locators selected remote tables
ORA-06512: at "SCOTT. GET_CONCATENATED_TEXT', line 8no selected line
SQL > create or replace
function get_concatenated_text () 2
3 par1 varchar2
(4) return clob
5 as
var1 6 varchar2 (4000);
VARCHAR2 (4000) 7 var2;
Start 8
9. Select ename,
post 10
11 in var1,
12 var2
13 of emp@orcl
14 where rownum = 1;
15 return (to_clob (var1) | var2);
16 end;
17.The function is created.
SQL > select get_concatenated_text ('X') of double
2.GET_CONCATENATED_TEXT ('X')
--------------------------------------------------------------------------------
SMITHCLERKSQL >
SY.
-
collection of statistics on a remote table
Hello
Is it possible and how to collect statistics on remote tables of non-Oracle?
In my set up an Oracle Server (11g r2) is connected to an Oracle Server remote gateway to Oracle and DB2 server through ODBC gateway. All queries are distributed and heterogeneous, that is, the access data of the two remote servers. The query optimizer uses the real on remote tables from Oracle statistics, while for DB2 tables some default values are used. The difference between the default values and actual statistics is huge.
I found in a user's guide this column selectivity cannot be collected for tables non-Oracle. Is it possible to collect general statistics such as number of rows from the tables? It would be different if I use DRDA gateway to access DB2?
ConcerningRuslan,
The HS_FDS_SUPPORT_STATISTICS = TRUE parameter is supported using DG4ODBC, even if it is not documented. However, as already said it depends on the ODBC driver and the database non-Oracle to what is returned when set.
To see if it is used by the pilot, then check track of debug gateway. With the parameter set to true, then you should see explicit SQLStatistics ODBC calls. If these are not present then the parameter is to have no effect. You can also view an ODBC trace for these calls.Kind regards
Mike -
cannot access the rows of a table not nested element
What Miss me? I'm under Oracle 12 c (12.1.0.1.0)
CREATE TYPE dim_O AS OBJECT )dimension_id number
label_en varchar2()300( )
);
CREATE TYPE dim_T AS TABLE OF dim_O;
DECLARE
dims_t dim_T
START
SELECT CAST(MULTISET( ))
SELECT DIMENSION_ID LABEL_EN
DE DIMENSIONTABLE -actual physical table in oracle
OÙ DIMENSION_ID IN (3001 3002 3003()
) AS dim_T) "dim_rec"
BY dims_t
DE DOUBLE;
FOR I IN dims_t. FIRST... dims_t. LAST LOOP
DBMS_OUTPUT. Put_line() dims_t() I). dimension_id);
END LOOP;
-exit from the loop above is
-3001
-3002
-3003
-The following statement fails: cannot access the rows of a table not nested element
UPDATE TABLE ( SELECT dimension_id FROM TABLE (dims_t) ( )
Dimension_id SET = WHERE = dimension_id 3004 3003
-The following statement fails: cannot access the rows of a table not nested element
UPDATE TABLE ( SELECT dimension_id FROM TABLE (CAST (dims_t in dim_T () ) ( )
Dimension_id SET = WHERE = dimension_id 3004 3003
END;
I'm trying to understand this example very simple, but to no avail.
Can someone tell me why I get this error?
Thank you all in advance for your time.
Marc
What Miss me? I'm under Oracle 12 c (12.1.0.1.0)
CREATE TYPE dim_O () AS OBJECTnumber of dimension_id
label_en varchar2 (300)
);
CREATE TYPE dim_T AS TABLE OF dim_O;
DECLARE
dims_t dim_T;
BEGIN
SELECT CAST (TYPE MULTISET)
SELECT DIMENSION_ID, LABEL_EN
OF DIMENSIONTABLE -actual physical table in oracle
WHERE DIMENSION_ID IN (3001,3002,3003)
() AS dim_T) 'dim_rec '.
IN dims_t
FROM DUAL;
I'm IN dims_t.FIRST... dims_t.Last LOOP
DBMS_OUTPUT. Put_line(dims_t (i) .dimension_id);
END LOOP;
-exit from the loop above is
-3001
-3002
-3003
-The following statement fails: cannot access the rows of a table not nested element
UPDATE TABLE (SELECT dimension_id FROM TABLE (dims_t))
SET dimension_id = dimension_id = 3003 3004 WHERE;
-The following statement fails: cannot access the rows of a table not nested element
UPDATE TABLE (SELECT dimension_id FROM TABLE (CAST (dims_t as dim_T)))
SET dimension_id = dimension_id = 3003 3004 WHERE;
END;
I'm trying to understand this example very simple, but to no avail.
Can someone tell me why I get this error?
You get it because dims_t is an array of OBJECTS - not a table of scalars. But your SELECT statement returns scalar.
There IS NO such object, named "dimension_id"; It is an ATTRIBUTE of the object DIM_O. DIMENSION_ID is a SCALAR which, as says the exception, is a "No nested table element; If you cannot select/Update lines of it.
What you do is equivalent to the following:
DECLARE
dims_t dim_T;
number of dim_id;
dim_o design;
BEGIN
Design: = dim_o (3, 'ghi');
SELECT DIM_O (DIM_ID, LABEL) BULK COLLECT INTO table DIMS_T (d_o);
end;
/
ORA-06550: line 7, column 59:
PL/SQL: ORA-22905: cannot access the rows of a table not nested element
ORA-06550: line 7, column 1:
PL/SQL: SQL statement ignored
This SELECTION is trying to design it as a table when it's a SCALAR - so the same exception you get.
-
ORA-19846: cannot read the header of the data file of the remote site 21
Hello
I have a situation or I can say a scenario. It is purely for testing base. Database is on 12.1.0.1 on a Linux box using ASM (OMF).
Standby is created on another machine with the same platform and who also uses ASM (OMF) and is in phase with the primary. Now, suppose I have create a PDB file on the primary of the SEED and it is created successfully.
After that is a couple of log, do it again passes to the waiting, but MRP fails because of naming conventions. Agree with that! Now, on the primary, I remove the newly created PDB (coward the PDB newly created). Once again a couple of switches of newspapers which is passed on to the wait. Of course, the wait is always out of sync.
Now, how to get back my watch in sync with the primary? I can't roll method until the required data (new PDB) file does not exist on the main site as well. I get the following error:
RMAN > recover database service prim noredo using backupset compressed;
To go back to November 8, 15
using the control file of the target instead of recovery catalog database
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID = 70 = device = DISK stby type instance
RMAN-00571: ===========================================================
RMAN-00569: = ERROR MESSAGE STACK FOLLOWS =.
RMAN-00571: ===========================================================
RMAN-03002: failure of the command recover at the 18:55:32 08/11/2015
ORA-19846: cannot read the header of the data file of the remote site 21
The clues on how to I go ahead? Of course, recreating the eve is an option as its only based on test, but I don't want recreation.
Thank you.
I tried like below:
1 a incremental backup of the primary of the CNS where off the eve also taken primary backup controlfile as Eve format.
2 copy the backup of the watch parts, catalogged them on the day before.
3 recovered Eve with noredo option - it fails here with the same error pointing to the 21 data file.
OK, understood. Try not to get back the day before first, rather than restore the controlfile and then perform the restoration.
Make it like:
1. take incremental backup of primary SNA, also ensures the backup controlfile format.
2. copy pending, get the location of the data file (names) by querying v$ datafile on the eve. Restore the controlfile ensures from the backup controlfile you took on primary and mount.
3. Since you are using OMF, the path of primary and standby data file will be different. (
/ ). If you require catalog data from the database files pending. (Reason: you restore controlfile from elementary to step 2, which takes place from the main access road). Use the details that you obtained in step 2 and catalog them.
4. turn the database copy by RMAN. (RMAN > switch database to copy ;))
5 Catalog backup items that you copied in step 2.
6. recover the standby database using 'noredo' option.
7. finally start the MRP. This should solve your problem.
The reason I say this works is because here, you restore the controlfile to primary first, which will not have details 21, datafile, and then you are recovering. So it must succeed.
In the previous method, you tried to first collect all the day before, and then restore the controlfile. While remedial classes, always watch seeks datafile 21 as he controlfile is not yet updated.
HTH
-Jonathan Rolland
-
I create a page "Form on a Table with Report" (APEX 5). Table I has 3 columns: cat_key, item_value, item_description. The cat_key is a foreign key in a table with columns cat_key, cat_value. I created the report and everything works fine. The page of the report shows my domain cat_key in number, so I want it instead to display the cat_value. I change the field cat_key to a text based on LOV, select my LOV and now when I view the page of report I get the "'ORA-01445: cannot select ROWID from where sample, a join without key preserved table view ' error." The report uses the ROWID as a link to the edit page field.
If I use the same tables and even shared LOV in a report page interactive, it works fine.
What I am doing wrong?
This is a limitation of the IR Apex will rewrite your query to a query that includes the lookup table and the columns. So now you have actually created a query on an inline view, which causes the error. You can see the query apex created when running in debug mode. APEX will join the table of choice with your primary table. For example from one of my IR:
Select 'ID '...
"MSL". "" HIS_COUNTRIES "=> my primary table
) ) b,
(select rv_meaning d, rv_low_value r
of msl_ref_codes_table
where rv_domain = "JOHN".
) L1 = > query My LOV Lookup
...
So, if possible, base your reports and forms on the real primary key, no rowid.
You can also write the IR query with the search yourself:
Select T1.rowid...
of primary_table T1
look_table L1
...
-
"ORA-01445: cannot select ROWID' v4 tabular.
Hi guys,.
We had major problems since the transition from v2 to v4.
One of the problems I've had is with tabular forms.
I have a complex page with many regions which has always worked well in version 2. One of these regions is a tabular presentation. When loading the page, I get the:
"ORA-01445: cannot select ROWID from where sample, a join without key preserved table view ' error."
The initial request was quite complex, but I've broken down it:
This query runs and allows me to update the base table (xxmel_apex_eco_alterations)
Select
replace. ALTERATION_ID,
replace. ALTERATION_ID ALTERATION_ID_DISPLAY,
replace. ECO,
alt.ORGANIZATION_ID,
replace. ACD_TYPE,
replace. INVENTORY_ITEM_ID,
replace. BEFORE_CHANGE_QTY,
replace. AFTER_CHANGE_QTY,
replace. MODIFY_FLAG,
replace. REVISED_ASSEMBLY_ID,
replace. BILL_SEQUENCE_ID,
alt.COMPONENT_SEQUENCE_ID,
replace. LAST_UPDATE_DATE,
replace. LAST_UPDATE_BY,
alt.COMMENTS,
replace. BOM_IMPLEMENTATION_DATE,
replace. BOM_CHANGE_NOTICE,
replace. ASSEMBLY_NAME,
alt.COMPONENT_NAME,
replace. SELECTION_CRITERIA,
replace. ORACLE_CHANGE_NOTICE,
alt.COMP_CURRENT_COST,
alt.COMP_NEW_COST,
alt.COMP_CURRENT_SC,
alt.COMP_NEW_SC,
alt.COMP_DESCRIPTION,
alt.COMP_CURRENT_UOM,
alt.COMP_NEW_UOM,
alt.COMP_CURRENT_PUR_STATUS,
alt.COMP_NEW_PUR_STATUS
ALT XXMEL_APEX_ECO_ALTERATIONS
where eco =: P2_ECO
But as soon as I try to join another table (I do not update, just view as shown below), I get the error.
Select
replace. ALTERATION_ID,
replace. ALTERATION_ID ALTERATION_ID_DISPLAY,
replace. ECO,
alt.ORGANIZATION_ID,
replace. ACD_TYPE,
replace. INVENTORY_ITEM_ID,
replace. BEFORE_CHANGE_QTY,
replace. AFTER_CHANGE_QTY,
replace. MODIFY_FLAG,
replace. REVISED_ASSEMBLY_ID,
replace. BILL_SEQUENCE_ID,
alt.COMPONENT_SEQUENCE_ID,
replace. LAST_UPDATE_DATE,
replace. LAST_UPDATE_BY,
alt.COMMENTS,
replace. BOM_IMPLEMENTATION_DATE,
replace. BOM_CHANGE_NOTICE,
replace. ASSEMBLY_NAME,
alt.COMPONENT_NAME,
replace. SELECTION_CRITERIA,
replace. ORACLE_CHANGE_NOTICE,
alt.COMP_CURRENT_COST,
alt.COMP_NEW_COST,
alt.COMP_CURRENT_SC,
alt.COMP_NEW_SC,
alt.COMP_DESCRIPTION,
alt.COMP_CURRENT_UOM,
alt.COMP_NEW_UOM,
alt.COMP_CURRENT_PUR_STATUS,
alt.COMP_NEW_PUR_STATUS
msib.segment1
ALT XXMEL_APEX_ECO_ALTERATIONS
mtl_system_items_b msib
where eco =: P2_ECO
and msib.organization_id = 26
and msib.inventory_item_id = ALT INVENTORY_ITEM_ID
I read where someone had a similar problem for me, but their solution (by copying the script to create a new page) isn't really an option for us the complexity to the page as a whole.
Is this a bug in 4 APEX?
Any help would be great,
Thank you
ChrisHello
This isn't a bug in the apex, if you want to display a different table column there is a way to create a function to get the value of this table
to "msib.segment1", you must create a function that accepts that some primary key to and retrieves the value of 'mtl_system_items_b' and can return a value in the field "segment1".
and you can use your previous query, you can add the name of function as a new field
for example
Select
replace. ALTERATION_ID,
replace. ALTERATION_ID ALTERATION_ID_DISPLAY,
replace. ECO,
alt.ORGANIZATION_ID,
replace. ACD_TYPE,
replace. INVENTORY_ITEM_ID,
replace. BEFORE_CHANGE_QTY,
replace. AFTER_CHANGE_QTY,
replace. MODIFY_FLAG,
replace. REVISED_ASSEMBLY_ID,
replace. BILL_SEQUENCE_ID,
alt.COMPONENT_SEQUENCE_ID,
replace. LAST_UPDATE_DATE,
replace. LAST_UPDATE_BY,
alt.COMMENTS,
replace. BOM_IMPLEMENTATION_DATE,
replace. BOM_CHANGE_NOTICE,
replace. ASSEMBLY_NAME,
alt.COMPONENT_NAME,
replace. SELECTION_CRITERIA,
replace. ORACLE_CHANGE_NOTICE,
alt.COMP_CURRENT_COST,
alt.COMP_NEW_COST,
alt.COMP_CURRENT_SC,
alt.COMP_NEW_SC,
alt.COMP_DESCRIPTION,
alt.COMP_CURRENT_UOM,
alt.COMP_NEW_UOM,
alt.COMP_CURRENT_PUR_STATUS,
alt.COMP_NEW_PUR_STATUS,
newfunction (pkId) as segment1
ALT XXMEL_APEX_ECO_ALTERATIONS
where eco =: P2_ECOThank you
Abdou Bosamiya
Maybe you are looking for
-
Satellite R840 - 12 c: cannot manually turn off the WiFi function
I recently bought a brand new Toshiba Satellite R840 - 12 c Notebook.The Wifi light is still "on" and the function key does not work, in other words cannot manually turn off the WiFi feature. Although the WiFi feature is still "on" I can't connect to
-
HP ENVY 700-074: upgrade of processor (i5 to i7 4430 4790)
Hi, I wonder if I need to update my BIOS, if I were to be upgraded to an i7 4790, as I've heard from others is with boards z87 they needed to update before that their computer would turn with haswell refreshment processors and if so how would go on i
-
Hello! I m trying to figure out how to get the similarity of the two audio signals in LabVIEW. I read the original signal of WAV file and do some operations with it (filtering etc.). After that, I want to know similarity of the signal (spectrogram) o
-
Computer laptop XP does not appear in the network of Vista laptop
My cell phone based on Windows-XP does not appear in my laptop Windows Vista-base and is not accessible from this Vista computer, but it appears in the network adapter connected to the network wireless by a double dashed line. At the same time, the l
-
A friend just sent me this joke and I have been laughing like a beast for an hour so I thought I'll post 5 routers walk into a bar... Who gets the car keys? . . . . . . . THE DESIGNATED ROUTER! Laughing out loud