Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara Membagi String di PL/SQL?

Pada artikel ini, saya memberikan contoh fungsi yang paling sering saya gunakan untuk membagi string di PL/SQL. Terutama, ketika saya menulis program untuk mengimpor file yang dibatasi. Berikut adalah fungsi tersebut dan contoh cara menggunakannya.

Fungsi PL/SQL untuk Memisahkan String

Fungsi ini mengambil empat parameter, dan rincian parameter ini adalah sebagai berikut:

  1. Source_String :String untuk Dipisah
  2. Posisi_Bidang :Posisi Pembatas
  3. Tidak Dihentikan :False secara default, tetapi jika Anda meneruskan True, maka itu akan menambahkan pembatas yang ditentukan di akhir string.
  4. Pembatas :Defaultnya adalah Koma ',', Anda dapat melewati pembatas lainnya.
CREATE OR REPLACE FUNCTION GetString (
Source_string IN VARCHAR2,
Field_position IN NUMBER,
UnTerminated IN BOOLEAN DEFAULT FALSE,
Delimiter IN VARCHAR2 DEFAULT ',')
RETURN VARCHAR2
IS
iPtrEnd PLS_INTEGER := 0;
iPtrStart PLS_INTEGER := 0;
vcSourceStrCopy VARCHAR2 (4000) := Source_string;
BEGIN
IF UnTerminated
THEN
vcSourceStrCopy := vcSourceStrCopy || Delimiter;
END IF;

IF Field_Position > 1
THEN
iPtrStart :=
INSTR (vcSourceStrCopy,
Delimiter,
1,
Field_Position - 1)
+ LENGTH (Delimiter);
ELSE
iPtrStart := 1;
END IF;

iPtrEnd :=
INSTR (vcSourceStrCopy,
Delimiter,
1,
Field_Position);
RETURN SUBSTR (vcSourceStrCopy, iPtrStart, (iPtrEnd - iPtrStart));
END GetString;

Contoh:Gunakan Fungsi Ini di Program PL/SQL

SET SERVEROUTPUT ON;

DECLARE
   v_string      VARCHAR2 (1000) := 'Java|.Net|C|Oracle|PHP';

   TYPE t_string IS TABLE OF VARCHAR2 (1000)
                       INDEX BY BINARY_INTEGER;

   t_str_array   t_string;
BEGIN
   FOR i IN 1 .. 5
   LOOP
      t_str_array (i) :=
         getstring (v_string,
                    i,
                    TRUE,
                    '|');
   END LOOP;

   FOR j IN t_str_array.FIRST .. t_str_array.LAST
   LOOP
      DBMS_OUTPUT.put_Line (t_str_array (j));
   END LOOP;
END;
/

Keluaran:

Java
.Net
C
Oracle
PHP
PL/SQL procedure successfully completed.

Lihat juga:

  • Ekspor Data ke JSON menggunakan PL/SQL di Oracle 11g
  • Program PL/SQL untuk Mencetak detail Karyawan

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat pengguna dari variabel string di blok PL/SQL

  2. Konfigurasi sumber data Oracle untuk Spring

  3. Oracle Floats vs Number

  4. kesalahan:ORA-65096:nama pengguna atau peran umum yang tidak valid di Oracle

  5. Oracle.ManagedDataAccess.EntityFramework - ORA-01918:pengguna 'dbo' tidak ada