Tải bản đầy đủ (.pdf) (7 trang)

a0007 4 oracle database 11g plsql fundamental morebook vn 1674

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (30.3 KB, 7 trang )

Oracle Database 11g: PL/SQL
Fundamentals
Student Guide

D49990GC20
Edition 2.0
September 2009
D62728


Author

Copyright © 2009, Oracle. All rights reserved.

Brian Pottle

Disclaimer

Technical Contributors
and Reviewers
Tom Best
Christoph Burandt
Yanti Chang
Laszlo Czinkoczki
Ashita Dhir
Peter Driver
Gerlinde Frenzen
Nancy Greenberg
Chaitanya Kortamaddi
Tim Leblanc
Bryan Roberts


Abhishek X Singh
Puja Singh
Lex Van Der Werff

Graphic Designer
Satish Bettegowda

Editors
Vijayalakshmi Narasimhan
Daniel Milne

Publisher
Jobi Varghese

This document contains proprietary information and is protected by copyright and
other intellectual property laws. You may copy and print this document solely for your
own use in an Oracle training course. The document may not be modified or altered in
any way. Except where your use constitutes "fair use" under copyright law, you may
not use, share, download, upload, copy, print, display, perform, reproduce, publish,
license, post, transmit, or distribute this document in whole or in part without the
express authorization of Oracle.
The information contained in this document is subject to change without notice. If you
find any problems in the document, please report them in writing to: Oracle University,
500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not
warranted to be error-free.
Restricted Rights Notice
If this documentation is delivered to the United States Government or anyone using
the documentation on behalf of the United States Government, the following notice is
applicable:
U.S. GOVERNMENT RIGHTS

The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or
disclose these training materials are restricted by the terms of the applicable Oracle
license agreement and/or the applicable U.S. Government contract.
Trademark Notice
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other
names may be trademarks of their respective owners.


Introduction

Copyright © 2009, Oracle. All rights reserved.


Lesson Objectives
After completing this lesson, you should be able to do the
following:
• Discuss the goals of the course
• Describe the HR database schema that is used in the
course
• Identify the available user interface environments that can
be used in this course
• Reference the available appendixes, documentation, and
other resources

I-2

Copyright © 2009, Oracle. All rights reserved.

Lesson Objectives
This lesson gives you a high-level overview of the course and its flow. You learn about the

database schema and the tables that the course uses. You are also introduced to different
products in the Oracle 11g grid infrastructure.

Oracle Database 11g: PL/SQL Fundamentals I - 2


Course Objectives
After completing this course, you should be able to do the
following:
• Identify the programming extensions that PL/SQL provides
to SQL
• Write PL/SQL code to interface with the database
• Design PL/SQL anonymous blocks that execute efficiently
• Use PL/SQL programming constructs and conditional
control statements
• Handle run-time errors
• Describe stored procedures and functions

I-3

Copyright © 2009, Oracle. All rights reserved.

Course Objectives
This course presents the basics of PL/SQL. You learn about PL/SQL syntax, blocks, and
programming constructs and also about the advantages of integrating SQL with those constructs.
You learn how to write PL/SQL program units and execute them efficiently. In addition, you
learn how to use SQL Developer as a development environment for PL/SQL. You also learn
how to design reusable program units such as procedures and functions.

Oracle Database 11g: PL/SQL Fundamentals I - 3



Using the OPEN-FOR, FETCH, and CLOSE Statements (continued)
Closing the Cursor Variable
The CLOSE statement disables a cursor variable. After that, the associated result set is
undefined. Use the following syntax:
CLOSE {cursor_variable | :host_cursor_variable};
In this example, when the last row is processed, close the emp_cv cursor variable:
LOOP
FETCH emp_cv INTO my_ename, my_sal;
EXIT WHEN emp_cv%NOTFOUND;
-- process row
END LOOP;
CLOSE emp_cv; -- close cursor variable
If you try to close an already-closed or never-opened cursor variable, PL/SQL raises
INVALID_CURSOR.

Oracle Database 11g: PL/SQL Fundamentals F - 9


Example of Fetching
DECLARE
TYPE EmpCurTyp IS REF CURSOR;
emp_cv
EmpCurTyp;
emp_rec employees%ROWTYPE;
sql_stmt VARCHAR2(200);
my_job
VARCHAR2(10) := 'ST_CLERK';
BEGIN

sql_stmt := 'SELECT * FROM employees
WHERE job_id = :j';
OPEN emp_cv FOR sql_stmt USING my_job;
LOOP
FETCH emp_cv INTO emp_rec;
EXIT WHEN emp_cv%NOTFOUND;
-- process record
END LOOP;
CLOSE emp_cv;
END;
/

F - 10

Copyright © 2009, Oracle. All rights reserved.

Example of Fetching
The example in the slide shows that you can fetch rows from the result set of a dynamic
multirow query into a record. You must first define a REF CURSOR type, EmpCurTyp. You
then define a cursor variable emp_cv, of the type EmpcurTyp. In the executable section of the
PL/SQL block, the OPEN-FOR statement associates the cursor variable emp_cv with the
multirow query, sql_stmt. The FETCH statement returns a row from the result set of a
multirow query and assigns the values of the select-list items to EMP_REC in the INTO clause.
When the last row is processed, close the emp_cv cursor variable.

Oracle Database 11g: PL/SQL Fundamentals F - 10




×