Invalidation of cursor
Hello
I have a question - not the rule to invalidate the SQL statements when we TRUNCATE, ANALYZE or DBMS_STATS . GATHER_XXX on tables or indexes, grants from changes to the underlying objects - also apply to global temporary tables?
I ran a test with the temporary table.
create a global temporary table tmp_t1
(
ID NUMBER,
NUMBER n
)
validation to preserve rows;
The following different sessions:
insert into tmp_t1
Select the level, round (dbms_random.value (1: 100))
of the double
connect by level < = 1000;
commit;
Select * from tmp_t1;
truncate table tmp_t1;
Select * from tmp_t1;
And then when I checked in v$ sql and v$ sql_shared_cursor I could see only one child cursor, no invalidation.
SELECT sql_id, child_number, sql_text, executions, parse_calls, invalidations IN v$ sql a WHERE UPPER (sql_text) LIKE ' % SELECT * FROM TMP_T1% ';
5n9hzb3rxzzxx | 0 | Select * from tmp_t1 | 7 | 3 | 0 |
SELECT * FROM v$ sql_shared_cursor WHERE sql_id = "5n9hzb3rxzzxx";
5n9hzb3rxzzxx | 00000000E1E50AB0 | 00000000E1E50950 | 0 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | (HUGECLOB) |
REASON is empty.
Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production
PL/SQL Release 11.2.0.3.0 - Production
Thank you.
Fix.
The main reason why a truncation invalidates a table lots, is that the data_object_id changes.
A temporary table is slightly different and is not a data_object_id.
Otherwise, if you create an index on a temporary table, collect stats etc should invalidate existing cursors that you perform changes that could make no access plans valid, available alternative execution plans, etc., etc.
Tags: Database
Similar Questions
-
cursor invalidation WITHOUT DDL statements
Hi all.
The BP is 11.2.0.3 on a linux machine.
As we know, the ddl statements on database objects cause cursror invalidation.
A number of invalidation of cursor WITHOUT means of ddl statements that pool is too small?
Here is a part of the AWR report.
Library Hit % is close to 100%, but I can find a number of invalidation of cursor in view v$ sql.
What could cause invalidation of cursor except ddl statements?
Thanks in advance.Instance Efficiency Percentages (Target 100%) Buffer Nowait %: 100.00 Redo NoWait %: 99.99 Buffer Hit %: 99.39 In-memory Sort %: 100.00 Library Hit %: 100.02 Soft Parse %: 99.99 Execute to Parse %: 86.93 Latch Hit %: 99.39 Parse CPU to Parse Elapsd %: 91.51 % Non-Parse CPU: 97.42
Best regards.869578 wrote:
Hi all.The BP is 11.2.0.3 on a linux machine.
A number of invalidation of cursor WITHOUT means of ddl statements that pool is too small?
Which could cause refills, but not radiation.
A possible cause of invalidations on your system could be the number of cursors of a parent child became too big.Here is a part of the AWR report.
Library Hit % is close to 100%, but I can find a number of invalidation of cursor in view v$ sql.The part of the AWR library cache would be little relevant if you think you have a problem with the invalidations.
The effectiveness of the instance is practically useless in the best of cases, http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-2/ is not relevant in this case.Concerning
Jonathan Lewis -
Hello
We have 10.2.0.3 company running on linux oracle instance and each grant statement takes about 15 seconds per table, newspapers are clean and the memory usage is good.
for the execution of the 25K grant tables taking 2-3 days.
Please advise, and let us know if you need more information.
Thank youMaryse has already clearly explained the problem. The origins of the problem of the existing execution plan fact is used, this is unfortunately not the right one for the current value of the variable binding. In your case query returned 0 rows so that the access of the index would be the most appropriate.
The only possibility is to force the invalidation of cursor using something, that I describe in my post today: http://joze-senegacnik.blogspot.com/2009/12/force-cursor-invalidation.html
Use the code, invalidating the cursor by running:
SQL> exec invalidate_statistics('SYS','CDEF$')
and test it by issuing a grant and if necessary repeat the invalidation. If you pause, run the script in the grid (the hours of the who) in another session would be even better.
There are a few alternative options to invalidate the cursor:
First is to use the order comment, which works on the 'normal' tables but not to the dictionary table:
SQL> comment on table cdef$ is 'blah'; comment on table cdef$ is 'blah' * ERROR at line 1: ORA-00701: object necessary for warmstarting database cannot be altered
It is using grant or revoke:
SQL> grant select on cdef$ to joc; Grant succeeded. SQL> revoke select on cdef$ from joc; Revoke succeeded.
There is on 10.2.0.4 available dbms_shared_pool.purge which was brought back from 11g. However, whene I examined him on 10.2.0.4 that it did not work properly.
HTH cordially, Joze
Co-author of the forthcoming "Expert Oracle practices" book
http://www.Apress.com/Book/view/9781430226680Oracle related blog: http://joze-senegacnik.blogspot.com/
Blog of Rob: http://jsenegacnik.blogspot.com/
Blog on the strengthening of the ovens, bakery and kitchen: http://senegacnik.blogspot.comPublished by: Scheid Joze on 16.12.2009 13:56
-
Invalid cursor within the service in pipeline
The simple example following illustrates a mistake that I am experiencing with development code more complex.
I try to reuse a complex procedure that I do not have duplication of code and business logic.
It runs correctly.
exec PKG_TEST.complex_proc(:p_cursor);
This property returns an error:
exec PKG_TEST.select_rows(:p_cursor);
The error is ORA-01001: Invalid cursor.
I checked and the cursor is opened and % notfound is false.
Any ideas?
Thank you in advance for your help!
create the table employees
(
primary key ID number,
name varchar2 (100)
);
insert into employee values (1, 'Joe');
insert into employee values (2, 'Bob');
insert into employee values (3, 'Peter');
create table contractor
(
primary key ID number,
name varchar2 (100)
);
insert into a values (4, 'Henry') contractor;
insert into contractor values (5, 'William');
create or replace package PKG_TEST
is
type t_rec is rendered
(
Identification number,
name varchar (100)
);
type t_tab is table of the t_rec;
procedure complex_proc (p_cursor to sys_refcursor);
function select_fn (p_cursor sys_refcursor)
return PKG_TEST.t_tab in pipeline;
select_rows (p_cursor to sys_refcursor) procedure;
end pkg_test;
create or replace package PKG_TEST body
is
procedure complex_proc (out p_cursor sys_refcursor)
is
Start
Open the p_cursor for
Select *.
the employee;
end complex_proc;
function select_fn (p_cursor sys_refcursor)
return PKG_TEST.t_tab pipeline
is
v_tab PKG_TEST.t_tab;
v_rec PKG_TEST.t_rec;
Start
loop
collect the fetch p_cursor in bulk in the v_tab limit 100;
because me in 1... v_tab. Count
loop
v_rec: = v_tab (i);
pipe row (v_rec);
end loop;
When the output p_cursor % NOTFOUND;
end loop;
return;
end select_fn;
select_rows (exit p_cursor sys_refcursor) procedure
is
v_cursor sys_refcursor;
Start
PKG_TEST.complex_proc (v_cursor);
Open the p_cursor for
Select *.
table (PKG_TEST.select_fn (v_cursor))
Union of all the
Select *.
contractor;
select_rows end;
end pkg_test;
Problem is that your variable v_cursor in SELECT_ROWS is out of scope when the procedure ends.
So the ref cursor returned by this method cannot be referenced it more.
If you are on 11g and beyond, a workaround is to declare v_cursor DBMS_SQL cursor (for example an INTEGER data type) and use DBMS_SQL.to_cursor_number / DBMS_SQL.to_refcursor to convert between the two.
In this way, the query pointed to by the final Ref cursor will always have a valid binding variable when the procedure ends.
function select_fn( p_cursor in integer ) return PKG_TEST.t_tab pipelined is v_tab PKG_TEST.t_tab; v_rec PKG_TEST.t_rec; v_cursor_num integer := p_cursor; v_cursor sys_refcursor := dbms_sql.to_refcursor(v_cursor_num); begin loop fetch v_cursor bulk collect into v_tab limit 100; --exit when p_cursor%NOTFOUND; exit when v_tab.count = 0; for i in 1 .. v_tab.count loop v_rec := v_tab(i); pipe row(v_rec); end loop; end loop; close v_cursor; return; end select_fn;
procedure select_rows ( p_cursor out sys_refcursor ) is v_cursor sys_refcursor; v_cursor2 integer; begin PKG_TEST.complex_proc(v_cursor); v_cursor2 := dbms_sql.to_cursor_number(v_cursor); open p_cursor for select * from TABLE(PKG_TEST.select_fn(v_cursor2)) union all select * from contractor; end select_rows;
-
Hi gurus,
Your help is greatly appreciated.
Will I have a fucntion where we have the object it contains.
The changes that I have doen are: 2 new cusrosrs, but its failure with the error below.
Highlighted are the changes I made. his length very well before your help is greatly appreciated.
1) PL/SQL: ORA-00904: "GET_ACQ_ID.". ' ACQ_ID ': invalid identifier.
(2) PLS-00225: subprogram or cursor reference 'GET_ACQ_ID' is out of range
Here is the code:
_________________________________________________________________________
FUNCTION GET_IP_COMM_INFO return PROD. TERMINAL_IP_COMM_INFO_TAB IS
vTer TER.ter_id%TYPE;
vAPPL_ID TAC.appl_id%TYPE;
vValue TSF.vALUE%TYPE;IP_COMM_INFO_LIST PROD. TERMINAL_IP_COMM_INFO_TAB: = PROD. TERMINAL_IP_COMM_INFO_TAB();
CURSOR GET_ACQ_ID IS
SELECT ACQ_ID
TER TAHA, MERC M, PROF
WHERE T.MER_ID = M.MER_ID
AND M.PROFID = P.PROF_ID
AND T.TER_ID = vTer_id;
CURSOR GET_INFO_CURSOR IS
SELECT H.DESCRIPTION AS HOST_DESCRIPTION
PROD. HOST H, PROD. APP_IP_COMM_ACCESS_INFO AICAI
WHERE (AICAI. HOST_ID = H.HOST_ID) and
(AICAI. APPL_ID = vAPPL_ID);CURSOR GET_ACQ_CURSOR IS
SELECT H.DESCRIPTION AS HOST_DESCRIPTION
PROD. HOST H, PROD. APP_IP_COMM_ACCESS_INFO AICAI, PROD. ACQUIRER_IP_COMM_ACCESS_INFO ACICAI
WHERE (AICAI. HOST_ID = H.HOST_ID) and
(AICAI. APPL_ID = vAPPL_ID) AND
(ACQUIRER_ID = GET_ACQ_ID. ACQ_ID);
BEGIN
vTer_id: = GLOBAL_VARIABLES.gv_ref_Ter_id;BEGIN
SELECT the VALUE IN vvalue OF Tsf
WHERE TER_id = vTEr_ID AND APPL_ID is vAPPL_ID and FEATURE_ID = 861;.Vvalue = '04' IF THEN
For GET_ACQ_REC IN GET_ACQ_CURSOR
LOOP
IP_COMM_INFO_LIST. EXTEND;
IP_COMM_INFO_LIST (IP_COMM_INFO_LIST. (COUNTY): = PROD. TERMINAL_IP_COMM_INFO_OBJ (GET_ACQ_REC. HOST_DESCRIPTION);
END LOOP;
ON THE OTHER
FOR GET_INFO_REC IN GET_INFO_CURSOR
LOOP
IP_COMM_INFO_LIST. EXTEND;
IP_COMM_INFO_LIST (IP_COMM_INFO_LIST. (COUNTY): = PROD. TERMINAL_IP_COMM_INFO_OBJ (GET_INFO_REC. HOST_DESCRIPTION);
END LOOP;
END IF;RETURN IP_COMM_INFO_LIST;
EXCEPTION WHEN OTHERS THEN
LIFT;
END GET_IP_COMM_INFO;----------------------------------------------------------
You try to access another variable of slider within the slider...
CURSOR GET_ACQ_CURSOR IS
SELECT H.DESCRIPTION AS HOST_DESCRIPTION
PROD. HOST H, PROD. APP_IP_COMM_ACCESS_INFO AICAI, PROD. ACQUIRER_IP_COMM_ACCESS_INFO ACICAI
WHERE (AICAI. HOST_ID = H.HOST_ID) and
(AICAI. APPL_ID = vAPPL_ID) AND
(ACQUIRER_ID = GET_ACQ_ID. ACQ_ID );
But you have not opened this slider, or anything like that.
You will probably need to pass as a parameter, just like a function:
(not sure of the type of data, so I assumed that the NUMBER)
CURSOR GET_ACQ_CURSOR (NUMBER in_acq_id) IS
SELECT H.DESCRIPTION AS HOST_DESCRIPTION
PROD. HOST H, PROD. APP_IP_COMM_ACCESS_INFO AICAI, PROD. ACQUIRER_IP_COMM_ACCESS_INFO ACICAI
WHERE (AICAI. HOST_ID = H.HOST_ID) and
(AICAI. APPL_ID = vAPPL_ID) AND
(ACQUIRER_ID = in_acq_id );
When you call this type, you must pass a value... So, it seems that you first call the other cursor.
Change this code:
IF Vvalue = ' 04 "THEN
FOR GET_ACQ_REC IN GET_ACQ_CURSOR
LOOP
IP_COMM_INFO_LIST. EXTEND;
IP_COMM_INFO_LIST (IP_COMM_INFO_LIST. (COUNTY): = PROD. TERMINAL_IP_COMM_INFO_OBJ (GET_ACQ_REC. HOST_DESCRIPTION);
END LOOP;
ON THE OTHER
To do this:
IF Vvalue = ' 04 "THEN
FOR GET_ACQ_ID_REC IN GET_ACQ_ID IS
LOOP
FOR GET_ACQ_REC IN GET_ACQ_CURSOR (get_acq_id_rec.acq_id)
LOOP
IP_COMM_INFO_LIST. EXTEND;
IP_COMM_INFO_LIST (IP_COMM_INFO_LIST. (COUNTY): = PROD. TERMINAL_IP_COMM_INFO_OBJ (GET_ACQ_REC. HOST_DESCRIPTION);
END LOOP;
END LOOP;
ON THE OTHER
(Or something like that)
I wasn't sure if your GET_ACQ_ID cursor returns only 1 row or not? If it returns more than 1 row, how to cope, you do not specify.
If it's just 1 row, then you can probably simplify it a little more:
IF Vvalue = ' 04 "THEN
SELECT ACQ_ID
in l_acq_id
TER TAHA, MERC M, PROF
WHERE T.MER_ID = M.MER_ID
AND M.PROFID = P.PROF_ID
AND T.TER_ID = vTer_id;
FOR GET_ACQ_REC IN GET_ACQ_CURSOR (l_acq_id)
LOOP
IP_COMM_INFO_LIST. EXTEND;
IP_COMM_INFO_LIST (IP_COMM_INFO_LIST. (COUNTY): = PROD. TERMINAL_IP_COMM_INFO_OBJ (GET_ACQ_REC. HOST_DESCRIPTION);
END LOOP;
ON THE OTHER
Hope that helps.
-
PLS-00362: Invalid cursor return type; 'NUMBER' must be a record type
Hello
Having a little trouble with the following code example provided to http://www.dba-oracle.com/plsql/t_plsql_cursor_variables.htm:
In the code above, SELECT COUNT (*)... returns a NUMBER. I know it's an aggregation function, but it returns a single value.1 DECLARE 2 TYPE t_ref_cursor IS REF CURSOR RETURN NUMBER; 3 c_cursor t_ref_cursor; 4 l_row NUMBER; 5 BEGIN 6 DBMS_OUTPUT.put_line('Strongly typed REF CURSOR using SCALAR type. Expect an error!'); 7 OPEN c_cursor FOR 8 SELECT COUNT(*) cnt 9 FROM cursor_variable_test; 10 LOOP 11 FETCH c_cursor 12 INTO l_row; 13 EXIT WHEN c_cursor%NOTFOUND; 14 DBMS_OUTPUT.put_line(l_row); 15 END LOOP; 16 CLOSE c_cursor; 17* END; 18 / TYPE t_ref_cursor IS REF CURSOR RETURN NUMBER; * ERROR at line 2: ORA-06550: line 2, column 24: PLS-00362: invalid cursor return type; 'NUMBER' must be a record type ORA-06550: line 2, column 3: PL/SQL: Item ignored
Why can't return a value in a column of a row in a NUMBER?
How can I change the SQL code so that I can do this?
Furthermore, I wonder about the use of FETCH with a count (*)... FETCH is supposed to fetch the next row... How it works when you select an aggregate as County?
Thank you very much
Jason>
TYPE t_ref_cursor IS REF CURSOR RETURN NUMBER;
*
ERROR on line 2:
ORA-06550: line 2, column 24:
PLS-00362: Invalid cursor return type; 'NUMBER' must be a record type
ORA-06550: line 2, column 3:
PL/SQL: Ignored ElementIn the code above, SELECT COUNT (*)... returns a NUMBER. I know it's an aggregation function, but it returns a single value.
Why can't return a value in a column of a row in a NUMBER?
How can I change the SQL code so that I can do this?
>
The exception is in line 2: your cursor statement. And the answer is in the text that you access
>
The return value of a strongly typed REF CURSOR must be a folder that can be defined using % TYPE % ROWTYPE attributes or record structure.
>
You said the CURSOR to return a NUMBER. And as the text says, he must be a 'record '.
>
Furthermore, I wonder about the use of FETCH with a count (*)... FETCH is supposed to fetch the next row... How it works when you select an aggregate as County?
>
As you said already FETCH retrieves the next line, if any. A query is a request is a request. It returns a result set. A query that uses aggregates returns a result set. A query that does not aggregate returns a result set.Your simple COUNT (*) SELECT query returns a result set that consists of a LINE and a line a ONE COLUMN of type NUMBER. Although there is only one column in the result set, what is returned is a RECORD or a LINE. That's why you have to report your data cursor return type a document using the % ROWTYPE or % TYPE attributes or a record structure.
-
Initialize the Ref Cursor to avoid ORA-01001: Invalid cursor
Hello
I write a stored procedure that returns a REF CURSOR. However, there are times when the cursor is not open if certain conditions are not met, so I wonder if there is a way to initialize the REF CURSOR so that the appellant does not receive the "ORA-01001: Invalid cursor" error when you try to work with the cursor, if it has not been opened.
Any help is greatly appreciated...
Thank you
Christinecad0227 wrote:
HelloI write a stored procedure that returns a REF CURSOR. However, there are times when the cursor is not open if certain conditions are not met, so I wonder if there is a way to initialize the REF CURSOR so that the appellant does not receive the "ORA-01001: Invalid cursor" error when you try to work with the cursor, if it has not been opened.
Any help is greatly appreciated...
Thank you
ChristineThe most appropriate way would be the caller to handle the situation. The caller must capture the exception of INVALID_CURSOR and do what is necessary.
Other suggestions like having a separate Pavilion or a model select all will lead the appellant to act to the particular situation, that slider is not being opened. What is the case with the exception of INVALID_CURSOR raised by oracle.
All the need for the appellant to do is manage the exception of INVALID_CURSOR and you should be good. And also INVALID_CURSOR is not a mistake, it's an exception that has a special meaning for her. In the case you sense it takes the condition when not together to return a cursor.
-
Is it possible to follow why a child specific cursor has been invalidated
Hi all
The oracle is 11.2.0.3 on a linux machine.
Is it possible to follow the reason for which a child specific cursor has been invalidated so often?
Thanks in advance.
Best regards.This should help,
http://docs.Oracle.com/CD/E11882_01/server.112/e24448/dynviews_3059.htmAman...
-
INVALID CURSOR - block anonymous component the cursor in function
I get an error when you try to call my cursor.CREATE OR REPLACE PACKAGE tax_update AS TYPE gencur IS ref cursor; FUNCTION tax_sf ( p_state IN bb_tax.state%type, p_thecursor IN OUT gencur ) RETURN NUMBER; END; / CREATE OR REPLACE PACKAGE BODY tax_update AS FUNCTION tax_sf ( p_state IN bb_tax.state%type, p_thecursor IN OUT gencur ) RETURN NUMBER IS lv_taxrate NUMBER; BEGIN OPEN p_thecursor FOR SELECT taxrate FROM bb_tax WHERE state = p_state; RETURN lv_taxrate; END; END; /
DECLARE tax_cur tax_update.gencur; rec_tax bb_tax%rowtype; BEGIN LOOP FETCH tax_cur INTO rec_tax; EXIT WHEN tax_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE(rec_tax.taxrate); END LOOP; END;
Mission is to create a package that will contain the rate of taxation by the State in a packed slider. The package contains a function that can receive a State of 2 character abbreviated as an argument and finds a match in the cursor and return the tax rates for tha tstate. An anonymous block will test the function with the State of North Carolina.DECLARE * ERROR at line 1: ORA-01001: invalid cursor ORA-06512: at line 6
If anyone can help?user13842802 wrote:
Have tried a few ways to call but always error on TAX_SF.SET SERVEROUTPUT ON DECLARE tax_cur tax_update.gencur; rec_tax bb_tax%rowtype; BEGIN tax_cur := tax_update.tax_sf('NC'); LOOP FETCH tax_cur INTO rec_tax; EXIT WHEN tax_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE(rec_tax.taxrate); END LOOP; END; /
SY.
-
Purge to open payable Interface ends with the error "Invalid Cursor"
Hello
I'm running Purge of open accounts payable (version 115.8) Interface and get an error of invalid cursor in the beforereport trigger. No one knows the cause and the cure for it? Part of the log is below. I looked at the cursor level and everything seems fine for me.
MSG-00001: Check (Import_purge 1) Panel for the purge process
MSG-00001: (Check_control_table 1) to lock the table control
MSG-00003: Fetch (Check_control_table 2) import_requests
MSG-00004: (Check_control_table 3) check the status of concurrent program
MSG-00999: FUNCTION GET_REQUEST_STATUS ERROR, Reason:
MSG-00999: FND_CONCURRENT. GET_REQUEST_STATUS <-Check_control_table <-Import_purge <-pre-writ report <-APXIIPRG
MSG-00999: check_control_table <-Import_purge <-pre-writ report <-APXIIPRG
MSG-00999: Check (Import_purge 1) Panel for the purge process
MSG-00999: delete the record in the command table...
MSG-00999: ORA-01001: Invalid cursor
REP-1419: 'beforereport': program abandoned PL/SQL.
Thank you.I'm running Purge of open accounts payable (version 115.8) Interface and get an error of invalid cursor in the beforereport trigger. No one knows the cause and the cure for it? Part of the log is below. I looked at the cursor level and everything seems fine for me.
MSG-00001: Check (Import_purge 1) Panel for the purge process
MSG-00001: (Check_control_table 1) to lock the table control
MSG-00003: Fetch (Check_control_table 2) import_requests
MSG-00004: (Check_control_table 3) check the status of concurrent program
MSG-00999: FUNCTION GET_REQUEST_STATUS ERROR, Reason:
MSG-00999: FND_CONCURRENT. GET_REQUEST_STATUS<><><- before="" report="" trigger="">-><->->
MSG-00999: check_control_table<><- before="" report="" trigger="">-><->->
MSG-00999: Check (Import_purge 1) Panel for the purge process
MSG-00999: delete the record in the command table...
MSG-00999: ORA-01001: Invalid cursor
REP-1419: 'beforereport': program abandoned PL/SQL.11i: debt open Interface import bill (APXIIMPT) [ID 107628.1] Troubleshooting Guide - 3. Open the Purge Import Interface fails with ORA-01001: Invalid cursor
Thank you
Hussein -
When I try to run the following pl/sql code, I get error of invalid cursor. Can someone please explain to me where I am doing wrong.
Thanks in advance!DECLARE CURSOR C1 IS SELECT employee_id,last_name,salary FROM employees; EMP_REC C1%ROWTYPE; BEGIN FOR REC IN C1 LOOP FETCH C1 INTO EMP_REC; EXIT WHEN C1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Employee Number '||REC.employee_id); DBMS_OUTPUT.PUT_LINE('Employee Name '||REC.last_name); DBMS_OUTPUT.PUT_LINE('JOB '||REC.salary); END LOOP; END;
You must decide if you want to open the cursor implicit or explicit:
You can use:
Variant1
DECLARE CURSOR C1 IS SELECT employee_id,last_name,salary FROM employees; BEGIN FOR REC IN C1 LOOP DBMS_OUTPUT.PUT_LINE('Employee Number '||REC.employee_id); DBMS_OUTPUT.PUT_LINE('Employee Name '||REC.last_name); DBMS_OUTPUT.PUT_LINE('JOB '||REC.salary); END LOOP; END;
Variant2:
DECLARE CURSOR C1 IS SELECT id employee_id, name last_name, id salary FROM arzt where rownum<10; EMP_REC C1%ROWTYPE; BEGIN open c1; loop FETCH C1 INTO EMP_REC; EXIT WHEN C1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Employee Number '||emp_REC.employee_id); DBMS_OUTPUT.PUT_LINE('Employee Name '||emp_REC.last_name); DBMS_OUTPUT.PUT_LINE('JOB '||emp_REC.salary); END LOOP; END;
Published by: hm on 01.08.2011 00:12
-
Char invalid when you use dynamic sql statements with cursor
Hello guys,.
I'm opening a following cursor with dynamic sql
my cursor statement isv_sql := 'SELECT OS.table_name FROM OBJECT_STATS_CONTROL OS, ALL_TABLES AT WHERE OS.analyze_flag <> ''N'' AND OS.last_analyze < sysdate -1 AND AT.last_analyzed < sysdate - 1 '||v_1||';';
I get an error messageBEGIN OPEN v_cur FOR v_sql; LOOP FETCH v_cur INTO v_tabname; ......
can any body suggest me where I'm wrong0911 invalid char
Thank youRemove the semicolon at the end:
||';' -- remove this.
-
Invalid value for the cursor.xscale property
I am creating a property node for "cursor.xscale", but when I try to write a numeric entry in it, it does not accept any value (at least all the values that I tried). An error indicating that the value is not valid. What is a valid value for this property and what exactly makes this this property (not a lot of documentation available I guess)
the XScale property is a number from 0 to n - 1, where n is the number of scales X you have on your chart (usually 1).
Here is an example of chart scales of X 3 and 2 cursor associated with the scale 'Time' and 'Time 2 "respectively.
The reason why it is important, it is that the X values read you in the column 'X' cursor will be different depending on whether the cursor is associated with one or the other ladder, as you can see above.
HTH.
-
A few days ago, I tried to upgrade Windows 7 Home Premium (64 bit) to Windows 10 using the free update. Installation hung at 84% for 2 hours, then restarted, was unable to recover the installation and then could not get back to Win 7. This left us with a black screen and a cursor of the mouse on the boot. The computer would remain in this State for about 10 minutes and then reboot and repeat.
Fortunately, or so I thought, I had a few CD Windows installation backup from the back to the era of digital river. So I thought I'd install fresh on my empty partition, copy my files and data, and then format the partition with the installation broken on.
I did, but now he tells me that my product key is not valid and cannot be activated. The product key came on a real label on the PC when we bought it.
The key is for X 16-96072. I installed X 17-58997 (Windows 7 Home Premium x 64 with SP1 (u)). I don't know what is the problem with the key? Should I have installed without the (u)?
One key 25 digits grouped in 5 sequences of 5 characters not X 17-58997.
To analyze and solve problems for Activation and Validation, we need to see a full copy of the diagnostic report produced by the MGADiag tool (download and save to the desktop -http://go.microsoft.com/fwlink/?linkid=52012 )Once downloaded, run the tool.Click on the button continue, after a short time, continue button will change to a copy button.Click the copy button in the tool (ignore the error at this stage) and then paste (with r-click and paste or Ctrl + V) in your message. -
My cursor is unresponsive and sometimes beach balls.
My cursor stops responding. It is not Frost simply does not work and I can't scroll. Also, sometimes I get a beachball. Here is my information. I have a lot of Red!
EtreCheck version: 2.7.7 (237)
Report generated 2016-01-24 15:49:52
Download EtreCheck from http://etrecheck.com
Time 03:00
Performance: good
Click the [Support] links to help with non-Apple products.
Click [details] for more information on this line.
Click on the link [check files] help with unknown files.
Problem: Another problem
Description:
Cursor not responding, beach balls. Must restart.
iMac (21.5 inch, mid-2010)
[Data sheet] - [User Guide] - [Warranty & Service]
iMac - model: iMac11, 2
1 3.06 GHz Intel Core i3 processor: 2 strands
4 GB of RAM expandable - [Instructions]
BANK 0/DIMM0
Vacuum
BANK 1/DIMM0
Vacuum
0/DIMM1 BANK
OK 2 GB DDR3 1333 MHz
BANK 1/DIMM1
OK 2 GB DDR3 1333 MHz
Bluetooth: Old - transfer/Airdrop2 not supported
Wireless: en1: 802.11 a/b/g/n
ATI Radeon HD 4670 - VRAM: 256 MB
iMac, 1920 x 1080
OS X El Capitan 10.11.2 15 c (50) - since startup time: less than an hour
WDC WD5000AAKS-40V6A0 disk0: (500,11 GB) (rotation)
EFI (disk0s1)
: 210 MB Macintosh HD (disk0s2) /: 499,25 go-go (436,87 free)
HD (disk0s3)
[recovery] recovery: 650 MB HL-DT-STDVDRW GA32N)
Scope of Mitsumi Electric Hub in Apple USB keyboard
Mitsumi Electric Apple Extended USB Keyboard
HP Photosmart C4100 series
Computer, Inc. Apple IR receiver.
Built-in ISight from Apple Inc..
Card reader Apple
Apple Inc. BRCM2046 hub.
Apple Inc. Bluetooth USB host controller.
OEM OEM ATA Device 00 400mbit - 400mbit max
EFI (disk1s1)
: 210 MB PARSONSBU HD (disk1s2) Volumes/PARSONSBU HD: 499,76 go-go (324,34 free)
Mac App Store and identified developers
/Users/christinaeparsons/library/LaunchA...plist
A unknown file found. [Check files]
/ System/Library/Extensions
com.Cisco.NKE.IPSec [no charge] (2.0.1) [Support]
[no charge] com.symantec.kext.ips (1.3.1f6) [Support]
CiscoVPN: Path: / System/Library/StartupItems/CiscoVPN
Startup items are obsolete in OS X Yosemite
[loading] com.adobe.CS4ServiceManager.plist [Support]
[loading] com.adobe.fpsaud.plist [Support]
[loading] com.malwarebytes.MBAMHelperTool.plist [Support]
[operation] com.iyogi.MsgAndPatchUpdater.plist [Support]
iTunesHelper Application (/ Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
iTunesHelper hidden UNKNOWN (missing value)
HP Application of Proxy classic IO (IO Proxy.app /Library/Frameworks/HPServicesInterface.framework/Versions/A/Runtime/HP classic)
Nikon Message Center 2 launch application (/ Applications/Nikon/Nikon Message Center 2 software / Nikon Message Center 2.app/Contents/SharedSupport/Launch Nikon Message Center 2.app)
HP Scheduler application (/ Library/Application Support/Hewlett Packard/Software Update/HP Scheduler.app)
HP product search request (/ Library/Application Support/Hewlett-Packard/Customer Participation/HP product Research.app)
[ongoing] com.Apple.XPC.launchd.oneshot.0x10000002.EtreCheck
[ongoing] com.HP.productresearch.90912
[operation] com.hp.scanModule.88352.A63BD67B-A542-4778-9E91-2E7755C63903
[ongoing] JP.co.Canon.cijscannerregister.91232
JavaAppletPlugin: Version: 15.0.1 - 10.7 to check the version of the SDK
FlashPlayer - 10.6: Version: 20.0.0.286 - SDK 10.6 [Support]
Default browser: Version: 601 - SDK 10.11
QuickTime Plugin: Version: 7.7.3
CouponPrinter-FireFox_v2: Version: 1.1.10 - SDK 10.5 [Support]
AdobePDFViewer: Version: 9.0.0 [Support]
Flash Player: Version: 20.0.0.286 - SDK 10.6 [Support]
OfficeLiveBrowserPlugin: Version: 12.3.6 [Support]
AmazonMP3DownloaderPlugin101750: Version: AmazonMP3DownloaderPlugin 1.0.17 - SDK 10.4 [Support]
Silverlight: Version: 5.1.20913.0 - SDK 10.6 [Support]
iPhotoPhotocast: Version: 7.0 - 10.7 SDK
PIN button
Flash Player [Support]
MenuMeters [Support]
Skip system files: No.
Automatic backup: YES
Volumes to back up:
Macintosh HD: Disc size: 499,25 GB disc used: 62.37 GB
Destinations:
PARSONSBU HD [Local]
Total size: 499,76 GB
Total number of backups: 126
An older backup: 16/03/14 23:17
Last backup: 24/01/16, 14:48
Size of backup drive: adequate
Backup size GB 499,76 > (disc 62,37 GB X 3)
3% com.apple.WebKit.WebContent (9)
2% WindowServer
kernel_task 2%
2% safari
1% backupd
Top of page process of memory: ⓘ
1.70 GB com.apple.WebKit.WebContent (9)
467 MB kernel_task
Mdworker (17) 254 MB
Safari 102 MB
Mds_stores 82 MB
57 MB free RAM
3,94 GB used RAM (719 MB Cache)
Used Swap 0 B
24 January 2016, 15:38:32 self-test - spent
January 22, 2016, 09:24:37 ~/Library/Logs/DiagnosticReports/suggestd_2016-01-22-092437_[redacted].crash
/System/Library/PrivateFrameworks/CoreSuggestions.Framework/versions/A/support/ suggestd
Standard users cannot read/Library/Logs/DiagnosticReports.
Run as an administrator account to view more information.
When you see a beachball cursor or the slowness is particularly bad, note the exact time: hour, minute, second.
These must be run as administrator. If you have only one user account, you are the administrator.
Run the Console application in one of the following ways:
☞ Enter the first letters of his name in a Spotlight search. Select from the results (it should be at the top).
☞ In the Finder, select go utilities ▹ of menu bar or press the combination of keys shift-command-U. The application is in the folder that opens.
☞ Open LaunchPad and start typing the name.
The title of the Console window should be all Messages. If it isn't, select
SYSTEM LOG QUERIES ▹ all Messages
in the list of logs on the left. If you don't see this list, select
List of newspapers seen ▹ display
in the menu at the top of the screen bar.
Each message in the journal begins with the date and time when it was entered. Highlight date back to the time you noted above.
Select the messages entered since then until the end of the episode, or until they begin to repeat, whichever comes first.
Copy messages to the Clipboard by pressing Control-C key combination. Paste into a reply to this message by pressing command + V.
The journal contains a large amount of information, almost all this is useless to solve any particular problem. When you post a journal excerpt, be selective. A few dozen lines are almost always more than enough.
Please don't dump blindly thousands of lines in the journal in this discussion.
Please do not post screenshots of log messages - text poster.
Some private information, such as your name, may appear in the log. Anonymize before posting.
When you post the journal excerpt, an error message may appear on the web page: "you include content in your post that is not allowed", or "the message contains invalid characters." It's a bug in the forum software. Thanks for posting the text on Pastebin, then post here a link to the page you created.
If you have an account on Pastebin, please do not select private in exposure menu to paste on the page, because no one else that you will be able to see it.
Maybe you are looking for
-
How do I change the destination file download to open it in the application?
When downloading files from my Bank in MS Money, the default is to open directly in MS Money. Recently, I needed to save the file on the desktop but faile to uncheck "do this for all files in the future." Now I can not download files directly into MS
-
Turn off the system, 54786447. Thank you
-
Hello- I have a VI that chart data from 36 channels of thermocouple. Data saved in the CSV file. I like to take a screenshot at the end of each race, but I forgot to make a. I remember the data in LabView to get my screenshot after the fact? Thank yo
-
HP Laserjet 3055: Fax for HP Laserjet 3055
Dear Sir. I want to ask questions about faxing. is it possible that when someone fax to me, I can save it in a folder or a file? because I have a problem with roll. It can suck 2 or more documents at the same time. and when he got paper jam. can I sa
-
At the beginning of the collection of files, settings, and programs, the installation stops and I get this error message:Check the installation sources are accessible. 0xC0000005 error code. I am running Windows Vista HP 32 bit on HP PC, installa