What Is the Implicit Cursor in Oracle?
Submitted by: AdministratorThe implicit cursor is the cursor automatically defined by PL/SQL for you. Whenever a SQL statement is executed, this cursor will be assigned to represent the execution of this statement. This implicit cursor is called SQL. It has many attributes representing some good information about the execution like:
► SQL%FOUND - True, if the SQL statement has changed any rows.
► SQL%NOTFOUND - True, if the SQL statement has not changed any rows.
► SQL%ROWCOUNT - The number of rows affected by the SQL statement.
See the example below on how to use the implicit cursor:
CREATE TABLE student (id NUMBER(5) PRIMARY KEY,
first_name VARCHAR(80) NOT NULL,
last_name VARCHAR(80) NOT NULL);
Table created.
Submitted by: Administrator
► SQL%FOUND - True, if the SQL statement has changed any rows.
► SQL%NOTFOUND - True, if the SQL statement has not changed any rows.
► SQL%ROWCOUNT - The number of rows affected by the SQL statement.
See the example below on how to use the implicit cursor:
CREATE TABLE student (id NUMBER(5) PRIMARY KEY,
first_name VARCHAR(80) NOT NULL,
last_name VARCHAR(80) NOT NULL);
Table created.
Submitted by: Administrator
<pre>DECLARE
id NUMBER;
first_name CHAR(10);
BEGIN
id := 29;
first_name := 'Bob';
INSERT INTO student VALUES(id, first_name, 'Henry');
first_name := 'Joe';
INSERT INTO student VALUES(id+1, first_name, 'Bush');
first_name := 'ggl';
UPDATE student SET first_name = first_name WHERE id = 29;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('# of rows updated: ' ||
SQL%ROWCOUNT);
END IF;
UPDATE student SET first_name = first_name
WHERE id = id+1;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('No records updated.');
END IF;
DELETE FROM student WHERE id = id;
DBMS_OUTPUT.PUT_LINE('# of rows updated: ' ||
SQL%ROWCOUNT);
END;
/</pre>
# of rows updated: 1
No records updated.
# of rows updated: 2
Submitted by: Administrator
id NUMBER;
first_name CHAR(10);
BEGIN
id := 29;
first_name := 'Bob';
INSERT INTO student VALUES(id, first_name, 'Henry');
first_name := 'Joe';
INSERT INTO student VALUES(id+1, first_name, 'Bush');
first_name := 'ggl';
UPDATE student SET first_name = first_name WHERE id = 29;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('# of rows updated: ' ||
SQL%ROWCOUNT);
END IF;
UPDATE student SET first_name = first_name
WHERE id = id+1;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('No records updated.');
END IF;
DELETE FROM student WHERE id = id;
DBMS_OUTPUT.PUT_LINE('# of rows updated: ' ||
SQL%ROWCOUNT);
END;
/</pre>
# of rows updated: 1
No records updated.
# of rows updated: 2
Submitted by: Administrator
Read Online Oracle Database Job Interview Questions And Answers
Top Oracle Database Questions
☺ | How To Shutdown Your 10g XE Server? |
☺ | How To Recover a Dropped Table in Oracle? |
☺ | How Oracle Handles Dead Locks? |
☺ | What Is the Relation of a User Account and a Schema? |
☺ | What Is Oracle Open Database Communication (ODBC)? |
Top DB Oracle Categories
☺ | Oracle PL-SQL Interview Questions. |
☺ | Oracle DBA Interview Questions. |
☺ | Oracle D2K Interview Questions. |
☺ | OCI Interview Questions. |
☺ | Oracle RMAN Interview Questions. |