Rumah pangkalan data tutorial mysql Oracle中LOB 处理

Oracle中LOB 处理

Jun 07, 2016 pm 05:08 PM
o pangkalan data

主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。主要介绍字符类型和二进制文件类型LOB数据的存储,单独

三,大对象数据的读取和操作:DBMS_LOB包
   DBMS_LOB包:包含处理大对象的过程和函数
   /*
   insert into tlob values(1,'Gene','CLOB大对象列',empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
   insert into tlob values(2,'Jack','CLOB大对象列',empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
   insert into tlob values(3,'Mary','大对象列CLOB',empty_blob(),bfilename('MYDIR','IMG_0210.JPG'));
   */
  1,读取大对象数据的过程和函数
   ①:DBMS_LOB.Read():从LOB数据中读取指定长度数据到缓冲区的过程。
      DBMS_LOB.Read(LOB数据,指定长度,起始位置,存储返回LOB类型值变量);
     例子:
     Declare
        varC clob;
     vRStr varchar2(1000);
        ln number(4);
        Strt number(4);
     Begin
        select resume into varC from tlob where no = 1;
        ln := DBMS_LOB.GetLength(varC);
        Strt := 1;
        DBMS_LOB.Read(varC, ln, Strt, vRStr);
        DBMS_output.put_line('Return: '||vRStr);
     End;
  
   ②:DBMS_LOB.SubStr():从LOB数据中提取子字符串的函数。
    DBMS_LOB.SubStr(LOB数据,指定提取长度,提取起始位置):
    例子:
     Declare
       varC clob;
      vRStr varchar2(1000);
      ln number(4);
      Strt number(4);
     Begin
      select resume into varC from tlob where no = 1;
      ln := 4;
      Strt := 1;
      vRStr := DBMS_LOB.SubStr(varC, ln, Strt);
      DBMS_output.put_line('结果为: '||vRStr);
     End;
   
   ③:DBMS_LOB.InStr():从LOB数据中查找子字符串位置的函数。
     DBMS_LOB.InStr(LOB数据, 子字符串);
     例子:
     Declare 
      varC clob;
      vSubStr varchar2(1000);
      vRStr varchar2(1000);
      ln number(4);
     Begin
      select resume into varC from tlob where no = 1;
        vSubStr := '大对象';
      ln := DBMS_LOB.InStr(varC,vSubStr);
      DBMS_output.put_line('位置为: '||ln);
     
      vRStr := DBMS_LOB.SubStr(varC, Length(vSubStr), ln);
      DBMS_output.put_line('位置为'||ln||'长度为'||Length(vSubStr)||'的子字符串为:'||vRStr);
     End;
   
   ④:DBMS_LOB.GetLength():返回指定LOB数据的长度的函数。
     DBMS_LOB.GetLength(LOB数据);
   
   ⑤:DBMS_LOB.Compare():比较二个大对象是否相等。返回数值0为相等,-1为不相等。
     DBMS_LOB.Compare(LOB数据,LOB数据);
     例子:
     Declare 
        varC1 clob;
      varC2 clob;
      varC3 clob;
      ln number(4);
     Begin
      select resume into varC1 from tlob where no = 1;
      select resume into varC2 from tlob where no = 2;
      select resume into varC3 from tlob where no = 3;
      ln := DBMS_LOB.Compare(varC1,varC1);
      DBMS_output.put_line('比较的结果为: '||ln);
      ln := DBMS_LOB.Compare(varC2,varC3);
      DBMS_output.put_line('比较的结果为: '||ln);
     End;
   2,操作大对象数据的过程
    操作会改变数据库中原有数据,需要加上Updata锁锁上指定数据列,修改完后提交事务。
   
   ①:DBMS_LOB.Write():将指定数量的数据写入LOB的过程。
     DBMS_LOB.Write(被写入LOB, 写入长度(指写入LOB数据),写入起始位置(指被写入LOB),写入LOB数据);
     例子:
     Declare
        varC clob;
        vWStr varchar2(1000);
        vStrt number(4);
      ln number(4);
     Begin
        vWStr := 'CLOB';
        ln := Length(vWStr);
        vStrt := 5;
        select resume into varC from tlob where no = 1 FOR UPDATE;
        DBMS_LOB.Write(varC, ln, vStrt, vWStr);
        DBMS_output.put_line('改写结果为: '||varC);
        Commit;
     End;
   
   ②:DBMS_LOB.Append():将指定的LOB数据追加到指定的LOB数据后的过程。
     DBMS_LOB.Append(LOB数据,LOB数据);
     例子:
     Declare
      varC clob;
      vAStr varchar2(1000);
     Begin
      vAStr := ',这是大对象列';
      select resume into varC from tlob where no = 1 FOR UPDATE;
      DBMS_LOB.Append(varC, vAStr);
      commit;
      DBMS_output.put_line('追加结果为: '||varC);
     End; 
   
   ③:DBMS_LOB.Erase():删除LOB数据中指定位置的部分数据的过程;
     DBMS_LOB.Erase(LOB数据,指定删除长度, 开始删除位置);
     例子:
     Declare
      varC clob;
      ln number(4);
      strt number(4);
     Begin
      ln := 1;
      strt := 5;
      select resume into varC from tlob where no = 1 FOR UPDATE;
      DBMS_LOB.Erase(varC, ln, strt);
      commit;
      DBMS_output.put_line('擦除结果为: '||varC);
     End;  
   
   ④:DBMS_LOB.Trim():截断LOB数据中从第一位置开始指定长度的部分数据的过程;
     DBMS_LOB.Trim(LOB数据,,截断长度);
     例子:
     Declare
     varC clob;
     ln number(4);
     Begin
      ln := 4;
      select resume into varC from tlob where no = 1 FOR UPDATE;
      DBMS_LOB.Trim(varC, ln);
      COMMIT;
      DBMS_output.put_line('截断结果为: '||varC);
     End;
   
   ⑤:DBMS_LOB.Copy():从指定位置开始将源LOB复制到目标LOB;
     DBMS_LOB.Copy(源LOB,目标LOB,复制源LOB长度,复制到目标LOB开始位置,复制源LOB开始位置)
     例子:
     Declare 
      vDEST_LOB clob;
      vSRC_LOB clob;
      AMOUNT number;
      DEST_OFFSET number;
      SRC_OFFSET number;
     Begin
      select resume into vDEST_LOB from tlob where no = 1 FOR UPDATE; 
      select resume into vSRC_LOB from tlob where no = 2 ;
      
      AMOUNT := DBMS_LOB.GetLength(vSRC_LOB);
      DEST_OFFSET := DBMS_LOB.GetLength(vDEST_LOB)+1;
      SRC_OFFSET := 1;
      
      DBMS_LOB.Copy(vDEST_LOB, vSRC_LOB, AMOUNT, DEST_OFFSET, SRC_OFFSET);
      DBMS_output.put_line('拷贝结果为: '||vDEST_LOB);
     End;

Kenyataan Laman Web ini
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

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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak Jul 18, 2024 am 05:48 AM

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Jun 05, 2024 pm 02:16 PM

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Jun 03, 2024 pm 02:20 PM

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.

Bagaimanakah Go WebSocket berintegrasi dengan pangkalan data? Bagaimanakah Go WebSocket berintegrasi dengan pangkalan data? Jun 05, 2024 pm 03:18 PM

Cara mengintegrasikan GoWebSocket dengan pangkalan data: Sediakan sambungan pangkalan data: Gunakan pakej pangkalan data/sql untuk menyambung ke pangkalan data. Simpan mesej WebSocket ke pangkalan data: Gunakan pernyataan INSERT untuk memasukkan mesej ke dalam pangkalan data. Dapatkan semula mesej WebSocket daripada pangkalan data: Gunakan pernyataan SELECT untuk mendapatkan semula mesej daripada pangkalan data.

Bagaimana cara memasang dan mendaftarkan aplikasi perdagangan BTC? Bagaimana cara memasang dan mendaftarkan aplikasi perdagangan BTC? Feb 21, 2025 pm 07:09 PM

Artikel ini akan memberikan pengenalan terperinci tentang cara memasang dan mendaftarkan aplikasi perdagangan bitcoin. Aplikasi perdagangan Bitcoin membolehkan pengguna mengurus dan berdagang kriptografi seperti Bitcoin. Artikel ini membimbing pengguna melalui proses pemasangan dan pendaftaran langkah demi langkah, termasuk memuat turun aplikasi, membuat akaun, melakukan pengesahan identiti, dan deposit pertama. Matlamat artikel ini adalah untuk menyediakan pemula dengan garis panduan yang jelas dan mudah difahami untuk membantu mereka dengan mudah memasuki dunia perdagangan bitcoin.

Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Jun 06, 2024 am 11:24 AM

Data JSON boleh disimpan ke dalam pangkalan data MySQL dengan menggunakan perpustakaan gjson atau fungsi json.Unmarshal. Pustaka gjson menyediakan kaedah kemudahan untuk menghuraikan medan JSON dan fungsi json.Unmarshal memerlukan penuding jenis sasaran kepada data JSON unmarshal. Kedua-dua kaedah memerlukan penyediaan pernyataan SQL dan melaksanakan operasi sisipan untuk mengekalkan data ke dalam pangkalan data.

Portal rasmi muat turun Ouyi Exchange Portal rasmi muat turun Ouyi Exchange Feb 21, 2025 pm 07:51 PM

Ouyi, juga dikenali sebagai Okx, adalah platform perdagangan cryptocurrency terkemuka di dunia. Artikel ini menyediakan portal muat turun untuk pakej pemasangan rasmi Ouyi, yang memudahkan pengguna memasang klien OUYI pada peranti yang berbeza. Pakej pemasangan ini menyokong sistem Windows, Mac, Android dan iOS. Selepas pemasangan selesai, pengguna boleh mendaftar atau log masuk ke akaun OUYI, mula membuat kriptografi perdagangan dan nikmati perkhidmatan lain yang disediakan oleh platform.

See all articles