cari
Rumahpangkalan dataOracleapa itu kursor oracle

apa itu kursor oracle

Feb 23, 2022 am 11:35 AM
oraclekursor

Dalam Oracle, kursor ialah mekanisme yang menggunakan kata kunci CURSOR untuk mentakrifkan set data yang ditanya oleh Oracle Set data yang ditanya boleh disimpan dalam memori, dan kemudian kursor menghala ke salah satu data Rekod, melalui kursor gelung untuk mencapai tujuan menggelung set data.

apa itu kursor oracle

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.

Dalam Oracle, kursor ialah mekanisme yang mana nama boleh diberikan kepada pernyataan SELECT dan maklumat dalam pernyataan SQL tersebut boleh diproses.

Kursor Oracle mentakrifkan set set data yang ditanya oleh Oracle melalui kata kunci CURSOR Sama seperti tatasusunan, set data yang ditanya disimpan dalam memori, dan kemudian kursor menghala ke salah satu rekod, dan kursor digelung Mencapai tujuan menggelung set data.

Apakah fungsi kursor?

①Nyatakan kedudukan baris tertentu dalam set hasil.

②Dapatkan satu baris atau beberapa baris berturut-turut berdasarkan kedudukan set hasil semasa.

③ Ubah suai data dalam baris pada kedudukan semasa set hasil.

④ Tentukan tahap sensitiviti yang berbeza untuk perubahan data yang dibuat oleh pengguna lain.

⑤Pangkalan data boleh diakses secara pengaturcaraan.

Jenis kursor Oracle?

1. Kursor statik: kursor yang set keputusannya telah disahkan (ditakrifkan secara statik). Terbahagi kepada kursor tersirat dan eksplisit

  • Kursor tersirat: Semua pernyataan DML ialah kursor tersirat dan maklumat pernyataan SQL boleh diperoleh melalui atribut kursor tersirat.

  • Tunjukkan kursor: Pengguna memaparkan kursor yang diisytiharkan, iaitu set hasil yang ditentukan. Apabila pertanyaan mengembalikan lebih daripada satu baris hasil, kursor eksplisit diperlukan.

2. Kursor REF: objek sementara yang mengaitkan set hasil secara dinamik.

Apakah status kursor Oracle dan cara menggunakan atribut kursor?

①Status kursor diwakili oleh atribut.

  • %Dijumpai: Betul atau Salah bagi status pelaksanaan pernyataan Ambil (mendapatkan rekod).

  • %NotFound: Sama ada rekod terakhir diekstrak sebagai Betul atau Palsu.

  • %ISOpen: Betul atau Palsu sama ada kursor dibuka.

  • %RowCount: Bilangan baris yang sedang diekstrak oleh kursor.

②Gunakan sifat kursor.

Contoh:

/* conn scott/tiger */
  Begin
   Update emp Set  SAL = SAL + 0.1  Where JOB = 'CLERK';
   If  SQL%Found  Then
    DBMS_OUTPUT.PUT_LINE('已经更新!');
   Else
    DBMS_OUTPUT.PUT_LINE('更新失败!');
   End  If;
  End;

Bagaimana untuk menggunakan kursor paparan? Bagaimana untuk mengulangi kursor gelung?

1 Gunakan kursor paparan

  • untuk mengisytiharkan kursor: bahagikan kawasan storan Ambil perhatian bahawa pernyataan Pilih tidak dilaksanakan pada masa ini masa.

CURSOR 游标名( 参数 列表)   [返回值类型]   IS   Select 语句;
  • Buka kursor: jalankan penyataan Pilih, dapatkan set hasil dan simpannya dalam kursor Pada masa ini, kursor menghala ke ketua set keputusan, bukan rekod pertama.

 Open 游标名( 参数 列表);
  • Dapatkan rekod: Gerakkan kursor untuk mendapatkan rekod

Fetch  游标名InTo  临时记录或属性类型变量;
  • Tutup kursor: Letakkan kursor ke dalam kumpulan penimbal tanpa melepaskan sumber sepenuhnya. Boleh dibuka semula.

Close  游标名;

2. Kursor gelung traverse

  • Untuk kursor gelung

Kursor gelung tersembunyi Buka kursor, tatal secara automatik untuk mendapatkan rekod, dan buat pembolehubah jenis rekod sementara secara automatik untuk menyimpan rekod. Kursor ditutup secara automatik selepas diproses.

     For  变量名  In  游标名 
     Loop
      数据处理语句;
     End Loop;
  • Gelung Kursor

     。。。
    Loop
     Fatch  游标名InTo  临时记录或属性类型变量;
     Exit  When   游标名%NotFound;
    End   Loop;
     。。。

Contoh 1:

/* conn scott/tiger */
   Declare
     Cursor myCur is select empno,ename,sal from emp;
     vna varchar2(10);
     vno number(4);
     vsal number(7,2);
  Begin
     open myCur;
     fetch myCur into vno,vna,vsal;
     dbms_output.put_line(vno||'    '||vna||'    '||vsal);
     close myCur;
  End;
  /

Contoh 2: Menggunakan Gelung Traverse kursor.

 /* conn scott/tiger */
  Declare
     Cursor myCur is select ename,job,sal,empno from emp;
     varE myCur%rowType;
  Begin
     if myCur%isopen = false then
        open myCur;
       dbms_output.put_line('Opening...');
     end if;
     loop
        fetch myCur into varE;
        exit when myCur%notfound;
        dbms_output.put_line(myCur%rowCount||'    '||vare.empno||'    '||vare.ename||'    '||vare.sal);
     end loop;
     if myCur%isopen then
        Close myCur;
        dbms_output.put_line('Closing...');
     end if;
  End;
  /

Contoh 3: Menggunakan gelung For untuk melintasi kursor,

  /* conn scott/tiger */
  Declare
     Cursor myCur is select * from emp;
  Begin
     for varA in myCur
      loop
         dbms_output.put_line(myCur%rowCount||'    '||varA.empno||'    '||varA.ename||'  '||varA.sal);
      end loop;
  End;
  /

Bagaimana untuk mengemas kini dan memadam rekod dalam kursor yang dipaparkan?

①WHERE CURRENT OF substring dalam pernyataan KEMASKINI atau PADAM secara khusus mengendalikan data terbaharu yang diambil daripada jadual untuk dilakukan operasi KEMASKINI atau PADAM.

Untuk menggunakan kaedah ini, anda mesti menggunakan subrentetan FOR UPDATE apabila mengisytiharkan kursor Apabila dialog menggunakan substring FOR UPDATE untuk membuka kursor,

Semua baris data dalam set pulangan akan. berada dalam penguncian eksklusif Peringkat baris (ROW-LEVEL), objek lain hanya boleh menanyakan baris data ini,

tidak boleh melakukan operasi KEMASKINI, PADAM atau PILIH...UNTUK KEMASKINI.

Dalam pertanyaan berbilang jadual, gunakan klausa OF untuk mengunci jadual tertentu Jika klausa OF diabaikan, baris data yang dipilih dalam semua jadual akan dikunci.

Jika baris data ini telah dikunci oleh sesi lain, maka dalam keadaan biasa ORACLE akan menunggu sehingga baris data dibuka kuncinya.

②Gunakan kemas kini atau padam:

⑴Nyatakan kemas kini atau padam kursor paparan:

   Cursor 游标名IS  SELECT 语句   For Update [ Of  更新列列名];
   Cursor 游标名IS  SELECT 语句   For Delete [ Of  更新列列名];

⑵Gunakan rekod semasa kursor paparan untuk mengemas kini atau memadam:

   Update  表名   SET   更新语句  Where   Current  Of   游标名;
   Delete  From  表名   Where   Current  Of   游标名;

Contoh 1: Kemas kini rekod kursor paparan

   /*conn scott/tiger*/
   Declare
     Cursor myCur is select job from emp for update;
       vjob empa.job%type;
       rsal empa.sal%type;
    Begin
       open myCur;
       loop
          fetch myCur into vjob;
          exit when myCur%notFound;
          case  (vjob)
             when 'ANALYST' then  rsal := 0.1;
            when  'CLERK' then  rsal := 0.2;
             when  'MANAGER' then  rsal := 0.3;
             else
               rsal := 0.5;
          end case;
        update emp set sal = sal + rsal where current of myCur;
       end loop;
    End;
    /

Contoh 2: Padam rekod kursor paparan

    /*conn scott/tiger
    Crate table  empa  Select * from scott.emp;
    */
    Declare
      Cursor MyCursor  Select   JOB  From  empa  For  Update;
      vSal   emp.Sal%TYPE;
    Begin
      Loop
       Fetch  MyCursor  InTo  vSal;
       Exit  When  MyCursor%NotFound;
       If   vSal < 800 Then
        Delete  From empa  Where  Cursor  Of   MyCursor;
       End  If;  
      End    Loop;
    End;/

Apakah kursor paparan dengan parameter?

1. Sama seperti prosedur dan fungsi, parameter boleh dihantar ke kursor dan digunakan dalam pertanyaan.

Parameter hanya menentukan jenis data, tiada saiz (semua parameter formal dalam Oracle hanya menentukan jenis data, tiada saiz dinyatakan).

  与过程不同的是,游标只能接受传递的值,而不能返回值。

   可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。

  游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。

2、使用带参数的显示游标

  • 声明带参数的显示游标:

   CURSOR 游标名  [(parameter[,parameter],...)]    IS   Select语句;

参数形式:

1,参数名   数据类型  

2,参数名   数据类型  DEFAULT  默认值

   例子:

    /*conn scott/tiger
    Crate table  empa  Select * from scott.emp;
    */
    Declare
      Cursor MyCursor(pSal  Number  Default   800)  Select   JOB  From  empa Where  SAL >  pSal ;
      varA  MyCursor%ROWTYPE;
    Begin
      Loop
       Fetch  MyCursor  InTo  varA;
       Exit  When  MyCursor%NotFound;
       DBMS_OUTPUT.PUT_LINE(MyCursor%RowCount||&#39;    &#39;||varA.empno||&#39;    &#39;||varA.ename||&#39;  &#39;||varA.sal); 
      End    Loop;
    End;/

推荐教程:《Oracle教程

Atas ialah kandungan terperinci apa itu kursor oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Mysql dan Oracle: Perbezaan utama dalam ciri dan fungsiMysql dan Oracle: Perbezaan utama dalam ciri dan fungsiApr 18, 2025 am 12:15 AM

MySQL dan Oracle masing -masing mempunyai kelebihan dalam prestasi, skalabiliti, dan keselamatan. 1) Prestasi: MySQL sesuai untuk operasi membaca dan kesesuaian yang tinggi, dan Oracle baik pada pertanyaan kompleks dan pemprosesan data besar. 2) Skalabiliti: MySQL meluas melalui replikasi master-hamba dan sharding, dan Oracle menggunakan RAC untuk menyediakan ketersediaan dan pengimbangan beban yang tinggi. 3) Keselamatan: MySQL menyediakan kawalan kebenaran yang halus, sementara Oracle mempunyai fungsi keselamatan dan alat automasi yang lebih komprehensif.

Oracle: Powerhouse of Database ManagementOracle: Powerhouse of Database ManagementApr 17, 2025 am 12:14 AM

Oracle dipanggil "kuasa besar" pengurusan pangkalan data kerana prestasi tinggi, kebolehpercayaan dan keselamatannya. 1. Oracle adalah sistem pengurusan pangkalan data relasi yang menyokong pelbagai sistem operasi. 2. Ia menyediakan platform pengurusan data yang kuat dengan skalabilitas, keselamatan dan ketersediaan yang tinggi. 3. Prinsip kerja Oracle termasuk penyimpanan data, pemprosesan pertanyaan dan pengurusan transaksi, dan menyokong teknologi pengoptimuman prestasi seperti pengindeksan, pembahagian dan caching. 4. Contoh penggunaan termasuk membuat jadual, memasukkan data, dan menulis prosedur tersimpan. 5. Strategi Pengoptimuman Prestasi termasuk pengoptimuman indeks, jadual partition, pengurusan cache dan pengoptimuman pertanyaan.

Apa yang ditawarkan oleh Oracle? Produk dan perkhidmatan dijelaskanApa yang ditawarkan oleh Oracle? Produk dan perkhidmatan dijelaskanApr 16, 2025 am 12:03 AM

OracleoffersacomprehensivesuiteofproductsandservicesIncludingDataBaseManagement, cloudcomputing, enterprisesoftware, andHardwaresolutions.1) oracledatabasesupportsvariousdatamodelswithefficeficientFeatures.2)

Perisian Oracle: Dari pangkalan data ke awanPerisian Oracle: Dari pangkalan data ke awanApr 15, 2025 am 12:09 AM

Sejarah pembangunan perisian Oracle dari pangkalan data ke pengkomputeran awan termasuk: 1. Bermula pada tahun 1977, ia pada mulanya memberi tumpuan kepada Sistem Pengurusan Pangkalan Data Relasi (RDBMS), dan dengan cepat menjadi pilihan pertama untuk aplikasi peringkat perusahaan; 2. Kembangkan ke middleware, alat pembangunan dan sistem ERP untuk membentuk satu set lengkap penyelesaian perusahaan; 3. Pangkalan Data Oracle menyokong SQL, menyediakan prestasi tinggi dan skalabiliti, sesuai untuk sistem perusahaan kecil dan besar; 4. Kebangkitan perkhidmatan pengkomputeran awan terus memperluaskan barisan produk Oracle untuk memenuhi semua aspek perusahaan yang diperlukan.

Mysql vs. Oracle: kebaikan dan keburukanMysql vs. Oracle: kebaikan dan keburukanApr 14, 2025 am 12:01 AM

Pemilihan MySQL dan Oracle hendaklah berdasarkan kos, prestasi, kerumitan dan keperluan fungsi: 1. MySQL sesuai untuk projek dengan belanjawan terhad, mudah dipasang, dan sesuai untuk aplikasi kecil dan sederhana. 2. Oracle sesuai untuk perusahaan besar dan melakukan yang cemerlang dalam mengendalikan data berskala besar dan permintaan serentak yang tinggi, tetapi mahal dan kompleks dalam konfigurasi.

Tujuan Oracle: Penyelesaian Perniagaan dan Pengurusan DataTujuan Oracle: Penyelesaian Perniagaan dan Pengurusan DataApr 13, 2025 am 12:02 AM

Oracle membantu perniagaan mencapai transformasi digital dan pengurusan data melalui produk dan perkhidmatannya. 1) Oracle menyediakan portfolio produk yang komprehensif, termasuk sistem pengurusan pangkalan data, sistem ERP dan CRM, membantu perusahaan mengautomasikan dan mengoptimumkan proses perniagaan. 2) Sistem ERP Oracle seperti E-BusinessSuite dan FusionApplications menyedari automasi proses perniagaan akhir-ke-akhir, meningkatkan kecekapan dan mengurangkan kos, tetapi mempunyai kos pelaksanaan dan penyelenggaraan yang tinggi. 3) OracLedatabase menyediakan pemprosesan data konkurensi tinggi dan ketersediaan yang tinggi, tetapi mempunyai kos pelesenan yang tinggi. 4) Pengoptimuman prestasi dan amalan terbaik termasuk penggunaan rasional pengindeksan dan teknologi pembahagian, penyelenggaraan pangkalan data biasa dan pematuhan dengan spesifikasi pengekodan.

Cara Menghapus Kegagalan Perpustakaan OracleCara Menghapus Kegagalan Perpustakaan OracleApr 12, 2025 am 06:21 AM

Langkah -langkah untuk memadam pangkalan data yang gagal selepas Oracle gagal membina perpustakaan: Gunakan nama pengguna sys untuk menyambung ke contoh sasaran. Gunakan pangkalan data drop untuk memadam pangkalan data. Pangkalan Data Permintaan v $ untuk mengesahkan bahawa pangkalan data telah dipadamkan.

Cara membuat kursor di Oracle LoopCara membuat kursor di Oracle LoopApr 12, 2025 am 06:18 AM

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).