operation of LogMiner column.
HelloPlease I analysis of the results of logminer and I found the column named 'operation', I understand the operation of INSERT, DELETE, UPDATE, COMMIT but what INTERNAL and medium not supported?
Thank you
Hello
Unsupported within the meaning of the statement that is executed or change has been caused by the operations performed by the user are not currently supported by LogMiner utility (for example, changes made to the tables with columns of the ADT). It may not able to describe it.
INTERNAL sense, the operation which is internall managed by ORACLE, for example consider the Chanied lines, when you insert a line / documents impossible to insert all of the data is too large.
Inside the ORACLE, will be chan lines, now it's an internal operation performed so that the OPERATION column INTERNAL for you and same rank migraiton.
I hope that you understood.
-Pavan Kumar N
Tags: Database
Similar Questions
-
Can I use 'like' operator in the column virtaul
Hello
can I use as an operator in the column virtaul as below?
or how can I use it?
----------------------------------------------------------------------------------------------------------------
create table tab1
(
C_N_NUMBER VARCHAR2 (25).
ACE RESET_STS (CASE C_N_NUMBER
WHEN as 'RESET %' THEN 'NO RESET' OTHER END NULL) VIRTUAL
) ;
------------------------------------------------------------------------------------
Rgds,
PCHello
you, the correct syntax iscreate table tab1
(
C_N_NUMBER VARCHAR2 (25).
ACE RESET_STS (CASE
WHEN C_N_NUMBER like 'RESET %' THEN 'NO RESET' OTHER END NULL) VIRTUAL
) ;Jirka
-
How to get a column using the logical AND operator on two columns?
All columns are the VARCHAR2 data type.
I got out of the table in this way:
col1 col2
but I want an extra column in this way:
True True
True false
False falsecol1 col2 result
as the clear sound output shows this column resut is logical operator AND
True True True
True false false
Fake fake fake
col1 and col2. How to get there?WITH t AS (SELECT 'True' col1, 'True' col2 FROM DUAL UNION ALL SELECT 'True' col1, 'False' col2 FROM DUAL UNION ALL SELECT 'False' col1, 'True' col2 FROM DUAL UNION ALL SELECT 'False' col1, 'False' col2FROM DUAL) SELECT col1,col2,CASE WHEN col1 = 'True' AND col2 = 'True' THEN 'True' WHEN col1 = 'True' AND col2 = 'False' THEN 'False' WHEN col1 = 'False' AND col2 = 'True' THEN 'False' WHEN col1 = 'False' AND col2 = 'False' THEN 'False' END AS RESULT FROM t
-
APEX_UTIL. IR_FILTER with BETWEEN operator for date columns
Hello
When I run my application, I can put a filter BETWEEN date columns. I can't find a way to use it with the APEX_UTIL. Function IR_FILTER. Maybe I missed something?
Documentation: http://download.oracle.com/docs/cd/E17556_01/doc/apirefs.40/e15519/apex_util.htm#CHDDDFBF
TobiasTobias,
If you think about it, "between the" is nothing else than a way of the single line to say
WHERE: X > =: Y
AND: X<=>=>Then you should be able to apply two filters of the report using the operators LTE and GTE
Hope this helps
Doug Gault
www.sumneva.com -
Salvation in him between operator using date columns
Hello
I have a small doubut, once I try to get the results perticular between dates, it does not work
ex:-in the emp table I try to get employees rental u between January 1, 80, to January 3, 80
Once I use the query select * from emp where hiredate between January 1, 80 'and January 3, 80'
It is the display of different data.
Please help I want 01 alone, 2nd and data jan 3rd only how to write the query.
Thank you toHello
You can make the Portuguese the default language for the DATEs in your session saying:
ALTER SESSION SET NLS_DATE_LANGUAGE = PORTUGUESE;
Note There are no quotation marks.
In a specific call to TO_DATE, you give NLS parameters in the 3rd argument:
TO_DATE ( '01-FEV-2009' , 'DD-MON-YYYY' , 'NLS_DATE_LANGUAGE = PORTUGUESE' )
This setting overrides the current NLS settiings session without changing them.
-
LogMiner SQL_REDO column ddl
Hello
We want to use logminer to get all activity on a subset of the tables in an ODS, historize the relevant tables in a central DWH.
For this we will use the SQL_REDO column.
For this that we are looking for a record structure that allows us to reinterpret the SQL_REDO varchar2 column (4000) into something that contains the relevant actual values as separate fields.
that is, the target table and the column; real movement (I/U/D).
Does something like this exist?
I know it's basically the SQL but then... It is not totally...
any suggestions welcome
Thank you very much$ sqlplus scott/tiger create table audit_from_logmnr ( operation varchar2(6), table_owner varchar2(30), table_name varchar2(30), new_field varchar2(500), new_operator varchar2(500), new_value varchar2(500), key_field varchar2(500), key_operator varchar2(500), key_value varchar2(500) ); Table created. create or replace procedure interpret_sql_redo (p_sql_redo VARCHAR2) IS /**************************************************************************** * Procedure: interpret_sql_redo * * Argument: p_sql_redo (sql_redo from logminer); * * The procedure will take the sql and record the audit information like * * which table was affected, and what was changed. * * Author: Zahid Kareem Qureshi * * IMPORTANT: * * Currently there are two major flaws in this procedure. * * 1. It cannot process conditions in the where clause using an operator * * other then =,>,< * * 2. If a comma comes as a literal in the set clause, or (and,or) comes as * * a literal in the where clause this procedure will fail. * ****************************************************************************/ sql_redo VARCHAR2(4000) := replace(p_sql_redo,'"',''); l_target_object VARCHAR2(70); l_owner_name VARCHAR2(30); l_table_name VARCHAR2(30); l_set_clause VARCHAR2(1000); l_where_clause VARCHAR2(1000); l_values_clause VARCHAR2(1000); l_movement VARCHAR2(6); l_cnt NUMBER; l_str VARCHAR2(500); l_key_field VARCHAR2(200); l_key_opr VARCHAR2(200); l_key_value VARCHAR2(200); l_new_field VARCHAR2(200); l_new_opr VARCHAR2(200); l_new_value VARCHAR2(200); begin l_movement := lower(substr(sql_redo,1,6)); IF l_movement = 'update' THEN l_target_object := regexp_replace(sql_redo,'update (.+) set .*', '\1', 1, 1, 'i'); l_set_clause := regexp_replace(sql_redo,'.* set (.+) where .*', '\1', 1, 1, 'i'); l_where_clause := regexp_replace(sql_redo,'.* where (.+)','\1', 1, 1, 'i'); l_owner_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,1)); l_table_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,2)); dbms_output.put_line('Operation: '||l_movement); dbms_output.put_line('Owner Name: '||l_owner_name); dbms_output.put_line('Table Name: '||l_table_name); IF l_where_clause IS NOT NULL THEN l_where_clause := regexp_replace(l_where_clause,'(and|or)','~'); l_cnt := (LENGTH(l_where_clause) - LENGTH(REPLACE(l_where_clause, '~')))+1; --dbms_output.put_line('Count ~ in '||l_where_clause||': '||l_cnt); FOR i IN 1..l_cnt LOOP l_str := trim(REGEXP_SUBSTR(l_where_clause,'[^~]+',1,i)); --dbms_output.put_line(l_str); l_key_field := l_key_field || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,1)) ||';'; l_key_opr := l_key_opr || trim(REGEXP_SUBSTR(l_str,'[(=|<|>)|\.]+',1,1)) || ';'; l_key_value := l_key_value || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,2)) ||';'; END LOOP; dbms_output.put_line('Key Field(s) :'||l_key_field); dbms_output.put_line('Key Operator(s) :'||l_key_opr); dbms_output.put_line('Key Value(s) :'||l_key_value); END IF; l_cnt := NULL; l_str := NULL; IF l_set_clause IS NOT NULL THEN l_set_clause := regexp_replace(l_set_clause,'(and|or)','~'); l_cnt := (LENGTH(l_set_clause) - LENGTH(REPLACE(l_set_clause, '~')))+1; --dbms_output.put_line('Count ~ in '||l_where_clause||': '||l_cnt); FOR i IN 1..l_cnt LOOP --l_str := trim(REGEXP_SUBSTR(regexp_replace(l_set_clause,'''[^'']+''',''),'[^~]+',1,i)); l_str := trim(REGEXP_SUBSTR(l_set_clause,'[^~]+',1,i)); --dbms_output.put_line(l_str); l_new_field := l_new_field || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,1)) ||';'; l_new_opr := l_new_opr || trim(REGEXP_SUBSTR(l_str,'[(=|<|>)|\.]+',1,1)) || ';'; l_new_value := l_new_value || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,2)) ||';'; END LOOP; dbms_output.put_line('New Field(s) :'||l_new_field); dbms_output.put_line('New Operator(s) :'||l_new_opr); dbms_output.put_line('New Value(s) :'||l_new_value); END IF; ELSIF l_movement = 'insert' THEN l_target_object := regexp_replace(sql_redo,'insert into (.+) values .*', '\1', 1, 1, 'i'); l_values_clause := regexp_replace(sql_redo,'.* values (.+)','\1', 1, 1, 'i'); l_owner_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,1)); l_table_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,2)); dbms_output.put_line('Operation: '||l_movement); dbms_output.put_line('Owner Name: '||l_owner_name); dbms_output.put_line('Table Name: '||l_table_name); --dbms_output.put_line('Values clause: '||l_values_clause); IF l_values_clause IS NOT NULL THEN l_cnt := (LENGTH(l_values_clause) - LENGTH(REPLACE(l_values_clause, ',')))+1; --dbms_output.put_line('Count ~ in '||l_values_clause||': '||l_cnt); FOR i IN 1..l_cnt LOOP l_str := trim(REGEXP_SUBSTR(l_values_clause,'[^,]+',1,i)); --dbms_output.put_line(l_str); l_new_field := l_new_field || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,1)) ||';'; l_new_opr := l_new_opr || trim(REGEXP_SUBSTR(l_str,'[(=|<|>)|\.]+',1,1)) || ';'; l_new_value := l_new_value || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,2)) ||';'; END LOOP; dbms_output.put_line('New Field(s) :'||l_new_field); dbms_output.put_line('New Operator(s) :'||l_new_opr); dbms_output.put_line('New Value(s) :'||l_new_value); END IF; ELSIF l_movement = 'delete' THEN l_target_object := regexp_replace(sql_redo,'delete from (.+) where .*', '\1', 1, 1, 'i'); l_where_clause := regexp_replace(sql_redo,'.* where (.+)','\1', 1, 1, 'i'); l_owner_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,1)); l_table_name := trim(REGEXP_SUBSTR(l_target_object,'[^\.|^\.]+',1,2)); dbms_output.put_line('Operation: '||l_movement); dbms_output.put_line('Owner Name: '||l_owner_name); dbms_output.put_line('Table Name: '||l_table_name); --dbms_output.put_line('Where clause: '||l_where_clause); IF l_where_clause IS NOT NULL THEN l_where_clause := regexp_replace(l_where_clause,'(and|or)','~'); --dbms_output.put_line(l_where_clause); l_cnt := (LENGTH(l_where_clause) - LENGTH(REPLACE(l_where_clause, '~')))+1; --dbms_output.put_line('Count ~ in '||l_where_clause||': '||l_cnt); FOR i IN 1..l_cnt LOOP l_str := trim(REGEXP_SUBSTR(l_where_clause,'[^~]+',1,i)); --dbms_output.put_line(l_str); l_key_field := l_key_field || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,1)) ||';'; l_key_opr := l_key_opr || trim(REGEXP_SUBSTR(l_str,'[(=|<|>)|\.]+',1,1)) || ';'; l_key_value := l_key_value || trim(REGEXP_SUBSTR(l_str,'[^(=|<|>)|^\.]+',1,2)) ||';'; END LOOP; dbms_output.put_line('Key Field(s) :'||l_key_field); dbms_output.put_line('Key Operator(s) :'||l_key_opr); dbms_output.put_line('Key Value(s) :'||l_key_value); END IF; END IF; insert into audit_from_logmnr values (l_movement , l_owner_name , l_table_name , l_new_field , l_new_opr , l_new_value , l_key_field , l_key_opr , l_key_value); --commit; end; / Procedure created. /* execute the procedure with three sql statements. */ begin interpret_sql_redo ('delete from "SCOTT"."STUDENT" where "STUDENT_ID" = 1 and "NAME" = ''ALLEN'' and "CLASS" = ''OCA'' and "FEE" = 1000 and ROWID = ''AAASNxAAEAAAAKnAAA'''); end; / PL/SQL procedure successfully completed. begin interpret_sql_redo ('update "SCOTT"."STUDENT" set "CLASS" = ''OCA'' where "STUDENT_ID" = 1 and "CLASS" = ''OCP'' and ROWID = ''AAASNxAAEAAAAKnAAA'''); end; / PL/SQL procedure successfully completed. begin interpret_sql_redo ('insert into "SCOTT"."STUDENT" values "STUDENT_ID" = 1,"NAME" = ''ALLEN'',"CLASS" = ''OCP'',"FEE" = 1000'); end; / PL/SQL procedure successfully completed. /* Verify the audit information.*/ column operation format a6 column table_owner format a6 column table_name format a7 column new_field format a27 column new_operator format a8 column new_value format a21 column key_field format a26 column key_operator format a10 column key_value format a30 select * from audit_from_logmnr; OPERAT TABLE_ TABLE_N NEW_FIELD NEW_OPER NEW_VALUE KEY_FIELD KEY_OPERAT KEY_VALUE ------ ------ ------- --------------------------- -------- --------------------- -------------------------- ---------- ------------------------------ delete SCOTT STUDENT STUDENT_ID;NAME;CLASS;FEE; =;=;=;=;=; 1;'ALLEN';'OCA';1000;'AAASNxAA ROWID; EAAAAKnAAA'; update SCOTT STUDENT CLASS; =; 'OCA'; STUDENT_ID;CLASS;ROWID; =;=;=; 1;'OCP';'AAASNxAAEAAAAKnAAA'; insert SCOTT STUDENT STUDENT_ID;NAME;CLASS;FEE; =;=;=;=; 1;'ALLEN';'OCP';1000;
Here's something you can start with.
As I mentioned in the header of the procedure, she has two flaws, but I don't know with this line of strong base, that these two faults are not difficult to correct, and I hope that you can do.
-
How to do a bitwise operation on a specific column in the database timesten
Hello
I need to do a bitwise operation and (&) operation on a column of data (whose datatype is NUMBER).
If I do something like SELECT 1010 & COLUMN1 from TABLENAME;
It will give the error: 'type 'NUMBER' not valid for operator 'BITAND' operand in expr data '.
Anyboday can help me?
Thanks in advance
Concerning
Arnaud
NUMBER is floating point format. Bitwise operators apply only to INTEGER values. There are several ways to work around it...
1. If the column in the database only stores integral values and then change its definition to NUMBER (n) (choose n) properly.
2. change the select statement to SELECT 1010 & CAST (COLUMN1 AS TT_INTEGER) (or TT_BIGINT according to the maximum value if you tore in the column)
3. change the column to a native integer TimesTen type as TT_INTEGER, TT_BIGINT etc. It uses less space and more efficient.
The columns should * only * be defined as NUMBER (with no precision or scale) if they really need to have this flexibility. Always use an explicit precision (and which adapted as appropriate) because this saves memory and allows to avoid this kind of issue. Better yet, use whole native types TimesTen, wherever possible. They use less memory and provide superior performance to those of all variants of NUMBER.
Chris
-
V13 Firefox is not consistent with the WC3 CSS columns
I use to be able to see multiple columns in v12 but is no longer in v13. Chrome and Opera display several columns but not FF v13.
Hello, the Date of issue for firefox 13 only could say that the support for the fill column property has been added - you give a link to a page where the problems occur?
Edit: apparently there is a problem with the height of a block of several column property. that will be solved by a release of the correction of a bug in firefox 13, which will be deployed in the coming days.
-
I'm new to OBIEE and I need to perform the following operations in the column change the formula:
CASE of SUBSTRING ('file'. "Column1" OF 1 TO 2)
WHEN 12 THEN VALUEOF (SUBSTRING ('file'. "Column1" FROM 1 to 6)) "
ANOTHER 'folder '. "' Column1 ' END
This obviously isn't a valid syntax for the CASE WHEN statement. But please advice as to how this functionality can be achieved.
Thank you
Srini.
You were close! Here it is a valid syntax:
CASE WHEN SUBSTRING ('file'. "Column1" FROM 1 FOR 2) = "12"
THEN SUBSTRING ('file'. "Column1" FROM 1 to 6)
ANOTHER 'folder '. "' Column1 ' END
Thank you
GEO
-
How can i two lists drop-down for the same column in OBIEE Dashboardprompt?
Hello
I need a report for a specific date range. I have to add 2 drop-down lists in the dashboardprompt for the same startdate and enddate column and the report must be filtered accordingly.
I can't add two drop-down lists in the DATE column in the same dashboardprompt.
How can I achieve this?
Can anyone help?Hello
You should be able to achieve the desired result by setting the operator for the column ' is between ' when you set the prompt.
Kind regards
Mark -
Filter for the bearing column week on number of possibilities
Hi all - I am trying to create a report that shows the number of projects for the past weeks 13 with a column for each week.
I can get the correct filter for the current week, but I don't know how to revise my expression sql for the previous weeks.
I use the 'In between' operator on the column of date with the following sql expressions:
TIMESTAMPADD (SQL_TSI_DAY,-(DAYOFWEEK (CURRENT_DATE)-1), CURRENT_DATE)
and
TIMESTAMPADD (SQL_TSI_DAY, 7-DAYOFWEEK (CURRENT_DATE), CURRENT_DATE)
As I said, this works to get the data for the current week. Does anyone know how I would revise to search beforehand for the week or two weeks earlier?
Thanks for any help!
LaceyHello!
If I understand correctly, you want to get a report showing the number of project per week for the current week and 12 weeks before? But according to what date? The date of project creation (I guess you have a field like that)?
In this case, you will need to place a filter by saying something like:
Where "Date of creation" between "Current date" and "Date of the day - 12 weeks.
* Date Opened. Date BETWEEN TIMESTAMPADD (SQL_TSI_WEEK-12, CURRENT_DATE) AND CURRENT_DATE *.I guess you'll have to use the TIMESTAMPADD function with interval SQL_TSI_WEEK, the current date and the value 12.
I tested the service request creation date to have the number of service request for the last 5 weeks, it worked...
I hope this will help, do not hesitate to ask for more!
Max
-
Name of the operation of Reg.
Hi all!!
I'm trying to write a small trigger to connect with an insert or update or delete on a particular table say for example table dept...
I have table of newspaper with desc:
operation {insert | day | delete}
time
Date
user
I m able to encode the dml with INSERT or UPDATE or DELETE event trigger trigger but to insert in operating table newspaper column I need to know which operation is performed... How could I may know that... is there a keyword that records the event occurred.
Thank you
Anthony.Indeed there is the syntax for that.
http://www.psoug.org/reference/table_trigger.html
IF THE INSERTION
....
IF THE UPDATE CAN
....
IF REMOVE THEN
.... -
Cannot remove table or choose in this one
Hi all!
I have the Oracle 11.2.0.2 with immortal but very sick table database.
Result of the
select dbms_metadata.get_ddl('TABLE', 'TEST_LUNKOV') from dual
is
CREATE TABLE "MDM_MASTER"."TEST_LUNKOV" ( "LUN_ID" NUMBER, "LUN_GID" NUMBER, "LUN_HASH" NUMBER, "LUN_START_DATE" DATE, "LUN_END_DATE" DATE, "LUN_CREATE_DATE" DATE, "LUN_CREATE_USER" NUMBER, "LUN_CHANGE_DATE" DATE, "LUN_CHANGE_USER" NUMBER, "LUN_ROW_STATUS" CHAR(1 BYTE), "LUN_K" NUMBER(23,2), "LUN_H" NUMBER(23,0), "LUN_J" VARCHAR2(1 BYTE), "LUN_L" NUMBER(21,0) ) ENABLE ROW MOVEMENT;
As you can see only the simple datatypes, nothing exotic.
But when you try
drop table test_lunkov CASCADE CONSTRAINTS purge;
I got error
30739 00000 - "cannot remove a table that has sub-tables.
* Cause: The user tried to drop a table that has defined sub-tables
under him.
* Action: Drop all sous-tables them before attempting this operation.
On
select * from test_lunkov
I had
12986 00000 - "columns in partially suspended state. «Propose to ALTER TABLE DROP COLUMNS CONTINUE»
* Cause: An attempt was made to access a table with columns in partially
abandoned the State (that is, drop the column was interrupted).
* Action: Propose to ALTER TABLE DROP the MORE COLUMNS to fill the drop
operation of the column before accessing the table.
On
alter table test_lunkov drop columns continue;
I had
table modified TEST_LUNKOV
and nothing has changed - neither FALL nor SELECT still does not.
TKPROF attached
Problem solved.
DO NOT TRY! ONLY FOR INFORMATION PURPOSES.
shutdown immediate startup restrict update tab$ set flags=... where obj#=...; -- must be exactly 1 row updated, if not then rollback commit; shutdown abort startup drop table MDM_MASTER.TEST_LUNKOV;
This is table containing mat.view dropped.
-
How to have a CLOB in a form such as a hidden element?
Hello
I have a table which has a CLOB column and a corresponding form on the table.
As long as I put the question of the form which corresponds to the CLOB as TextArea or Rich Text Editor there are no problem with the CLOB.
But I don't want that item to be displayed, so I tried to do a hidden element.
This while making always fails with the following error:
Error during rendering of the element on the page P61_CFIELD001.
ORA-06502: PL/SQL: digital or value error: character string buffer too small
I guess that's because the length of the CLOB is larger that a VARCHAR2 can hold.
Y at - it an idea how can I achieve this?
APEX Version: 4.2.4.00.08
Oracle database: 12.1.0.1.0
TIA,
Dionisis
Should be OK. The process of the ARF/ARP will be operated on the columns in the table specified in the properties of the source element.
-
EL! vacuum gives "unexpected (unary) use" error
I'm under JDeveloper 11.1.2.3.0 to develop a Mobile application of the ADF.
I want to put the rendered property of an element to output text to #{! empty pageFlowScope.MyBean.myString}. However, it gives me the error:
The exception: ELException: EL Parsing Error: unexpected operation (unary) found-[column 8] #{! empty pageFlowScope.MyBean.myString}
How can I set the property made a component so that it is rendered only if the referenced string is not null and not empty?
Thank you very much.NULL control does not seem to work, but looking for an empty as string above don't.
Thanks for your help.
Maybe you are looking for
-
Satellite Pro C50-A-1E4 running unstable with new RAM modules
I have the above machine and that you have upgraded the RAM (up to 8 GB) a long while ago. Normally I have upgraded the BIOS if there is a new version. However, for some so that my machine was unstable, and this is due to the RAM running at the XMP18
-
Toggle Boolean / Switch successfully after VI runs
I use a stepper motor that changes direction during execution. I currently have a Boolean control that sends a digital output to the correct port on the controller to reverse the direction. I do have, however, the Boolean value of the 'real' to 'fa
-
How get rid you of the windows dancer
Keep, the message that windows dancer runs so can not be deleted. How do stop you him?
-
I've never had this problem before. Still, I inserted my SD card then transferred my files from the same card in the same way as always. He asks to format the device in the g and when I try, it says that Windows is unable to format... It is a huge
-
Restart the laptop everytime I close.
Hello people... I have the problem that whenever I close my T60 still running, I have to restart again. Does anyone knows how to fix this?