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

Fungsi Seribu Pemisah di oracle?

Fungsi Anda akan masuk ke LOOP tak terbatas dan tidak akan pernah keluar darinya. Meskipun dikompilasi, itu tidak berarti fungsi akan berfungsi dengan baik, karena masalah akan terjadi pada waktu proses.

Kondisi WHILE selalu TRUE, dan penghitung tidak pernah bertambah, karena fungsi tidak pernah masuk ke kondisi IF.

Anda telah mengatur counter :=2 lalu kondisi JIKA adalah:

Bagaimana itu bisa benar? 2 tidak pernah lebih besar dari 2 , oleh karena itu penghitung tidak pernah bertambah , karena Anda memilikinya di dalam IF-END IF blokir.

Saat Anda menjalankan fungsi, fungsi tersebut tidak akan pernah keluar dari infinite loop.

Sesuai dengan kebutuhan Anda,

Mengapa Anda ingin menemukan kembali roda ketika Oracle telah menyediakan pemisah seribu.

Dari dokumentasi,

  • Elemen :G

  • Contoh :9G999

  • Deskripsi :Mengembalikan pemisah grup ke posisi yang ditentukan (nilai parameter NLS_NUMERIC_CHARACTER saat ini). Anda dapat menentukan beberapa pemisah grup dalam model format angka.

Misalnya,

SQL> SELECT TO_CHAR(sal,'999G999') FROM emp;

TO_CHAR(
--------
     800
   1,600
   1,250
   2,975
   1,250
   2,850
   2,450
   3,000
   5,000
   1,500
   1,100
     950
   3,000
   1,300

14 rows selected.

Jika Anda ingin nama fungsi sama dengan SQL Server fungsi, lalu buat fungsi yang ditentukan pengguna di database Oracle dengan nama yang sama. Logikanya akan sama dengan kueri di atas.

Misalnya,

SQL> CREATE OR REPLACE FUNCTION NumericFormat(
  2        col NUMBER)
  3      RETURN VARCHAR2
  4    AS
  5      o_num VARCHAR2(20);
  6  BEGIN
  7      o_num:=TO_CHAR(col,'999G999');
  8      RETURN o_num;
  9  END;
 10  /

Function created.

SQL>
SQL> sho err
No errors.
SQL>

Mari kita jalankan fungsi :

SQL> SELECT NumericFormat(sal) FROM emp;

NUMERICFORMAT(SAL)
----------------------------------------------
     800
   1,600
   1,250
   2,975
   1,250
   2,850
   2,450
   3,000
   5,000
   1,500
   1,100
     950
   3,000
   1,300

14 rows selected.

SQL>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengkodean di ROracle

  2. Cara menghapus koneksi database yang tidak valid dari pool

  3. Kode Sumber dari objek yang ada di Oracle

  4. File Respons Pembuatan Otomatis

  5. Siapa yang menemukan istilah simpul DIANA dan bagaimana mereka menghitung 6.000.000 LOC kira-kira 67108864 (2**26) simpul DIANA?