Home Database Mysql Tutorial Oracle 游标使用全解

Oracle 游标使用全解

Jun 07, 2016 pm 03:59 PM
oracle cursor database

这个lt;Oracle 游标使用全解gt;文档几乎包含了Oracle游标使用的方方面面,全部通过了测试

这个文档几乎包含了Oracle游标使用的方方面面,全部通过了测试

-- 声明游标;CURSOR cursor_name IS select_statement

--For 循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用for循环来使用这个游标
declare
      --类型定义
      cursor c_job
      is
      select empno,ename,job,sal
      from emp
      where job='MANAGER';
      --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
      c_row c_job%rowtype;
begin
      for c_row in c_job loop
        dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
      end loop;
end;


     
--Fetch游标
--使用的时候必须要明确的打开和关闭

declare
      --类型定义
      cursor c_job
      is
      select empno,ename,job,sal
      from emp
      where job='MANAGER';
      --定义一个游标变量
      c_row c_job%rowtype;
begin
      open c_job;
        loop
          --提取一行数据到c_row
          fetch c_job into c_row;
          --判读是否提取到值,没取到值就退出
          --取到值c_job%notfound 是false
          --取不到值c_job%notfound 是true
          exit when c_job%notfound;
            dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
        end loop;
      --关闭游标
      close c_job;
end;

--1:任意执行一个update操作,用隐式游标sql的属性%found,%notfound,%rowcount,%isopen观察update语句的执行情况。
      begin
        update emp set ENAME='ALEARK' WHERE EMPNO=7469;
        if sql%isopen then
          dbms_output.put_line('Openging');
          else
            dbms_output.put_line('closing');
            end if;
          if sql%found then
            dbms_output.put_line('游标指向了有效行');--判断游标是否指向有效行
            else
              dbms_output.put_line('Sorry');
              end if;
              if sql%notfound then
                dbms_output.put_line('Also Sorry');
                else
                  dbms_output.put_line('Haha');
                  end if;
                  dbms_output.put_line(sql%rowcount);
                  exception
                    when no_data_found then
                      dbms_output.put_line('Sorry No data');
                      when too_many_rows then
                        dbms_output.put_line('Too Many rows');
                        end;
declare
      empNumber emp.EMPNO%TYPE;
      empName emp.ENAME%TYPE;
      begin
        if sql%isopen then
          dbms_output.put_line('Cursor is opinging');
          else
            dbms_output.put_line('Cursor is Close');
            end if;
            if sql%notfound then
              dbms_output.put_line('No Value');
              else
                dbms_output.put_line(empNumber);
                end if;
                dbms_output.put_line(sql%rowcount);
                dbms_output.put_line('-------------');
               
                select EMPNO,ENAME into  empNumber,empName from emp where EMPNO=7499;
                dbms_output.put_line(sql%rowcount);
               
                if sql%isopen then
                dbms_output.put_line('Cursor is opinging');
                else
                dbms_output.put_line('Cursor is Closing');
                end if;
                if sql%notfound then
                dbms_output.put_line('No Value');
                else
                dbms_output.put_line(empNumber);
                end if;
                exception
                  when no_data_found then
                    dbms_output.put_line('No Value');
                    when too_many_rows then
                      dbms_output.put_line('too many rows');
                      end;
                 
               
     
--2,使用游标和loop循环来显示所有部门的名称
--游标声明
declare
      cursor csr_dept
      is
      --select语句
      select DNAME
      from Depth;
      --指定行指针,这句话应该是指定和csr_dept行类型相同的变量
      row_dept csr_dept%rowtype;
begin
      --for循环
      for row_dept in csr_dept loop
          dbms_output.put_line('部门名称:'||row_dept.DNAME);
      end loop;
end;

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How does Go language implement the addition, deletion, modification and query operations of the database? How does Go language implement the addition, deletion, modification and query operations of the database? Mar 27, 2024 pm 09:39 PM

Go language is an efficient, concise and easy-to-learn programming language. It is favored by developers because of its advantages in concurrent programming and network programming. In actual development, database operations are an indispensable part. This article will introduce how to use Go language to implement database addition, deletion, modification and query operations. In Go language, we usually use third-party libraries to operate databases, such as commonly used sql packages, gorm, etc. Here we take the sql package as an example to introduce how to implement the addition, deletion, modification and query operations of the database. Assume we are using a MySQL database.

How does Hibernate implement polymorphic mapping? How does Hibernate implement polymorphic mapping? Apr 17, 2024 pm 12:09 PM

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos Jul 18, 2024 am 05:48 AM

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

How to handle database connection errors in PHP How to handle database connection errors in PHP Jun 05, 2024 pm 02:16 PM

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

An in-depth analysis of how HTML reads the database An in-depth analysis of how HTML reads the database Apr 09, 2024 pm 12:36 PM

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

Tips and practices for handling Chinese garbled characters in databases with PHP Tips and practices for handling Chinese garbled characters in databases with PHP Mar 27, 2024 pm 05:21 PM

PHP is a back-end programming language widely used in website development. It has powerful database operation functions and is often used to interact with databases such as MySQL. However, due to the complexity of Chinese character encoding, problems often arise when dealing with Chinese garbled characters in the database. This article will introduce the skills and practices of PHP in handling Chinese garbled characters in databases, including common causes of garbled characters, solutions and specific code examples. Common reasons for garbled characters are incorrect database character set settings: the correct character set needs to be selected when creating the database, such as utf8 or u

How to connect to remote database using Golang? How to connect to remote database using Golang? Jun 01, 2024 pm 08:31 PM

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.

See all articles