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

Penggunaan boolean di PL/SQL

dbms_output.put_line tidak kelebihan beban untuk menerima argumen boolean. Anda dapat melakukan sesuatu seperti

dbms_output.put_line( case when exist = true 
                           then 'true'
                           else 'false'
                        end );

untuk mengonversi boolean menjadi string yang kemudian dapat Anda teruskan ke dbms_output .

Kesalahan ORA-01422 adalah masalah yang sepenuhnya terpisah. Fungsi checkEmpNo termasuk SELECT INTO pernyataan

SELECT emp_id 
  INTO emp_number
  FROM emp;

Sebuah SELECT INTO akan menghasilkan kesalahan jika kueri mengembalikan apa pun selain 1 baris. Dalam hal ini, jika ada beberapa baris di emp tabel, Anda akan mendapatkan kesalahan. Dugaan saya adalah Anda ingin fungsi Anda melakukan sesuatu seperti

CREATE OR REPLACE FUNCTION checkEmpNo(p_eno number)
  RETURN boolean 
IS
  l_count number;
BEGIN
  SELECT count(*)
    INTO l_count
    FROM emp
   WHERE emp_id = p_eno;

  IF( l_count = 0 )
  THEN
    RETURN false;
  ELSE
    RETURN true;
  END IF;
END checkEmpNo;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. permintaan oracle dengan beberapa kondisi filter

  2. hubungan satu-ke-banyak dengan batasan basis data dan invers=true

  3. Melewati nama tabel ke kursor

  4. Oracle tertinggal antara komit dan pilih

  5. Bagaimana cara menambahkan Kunci Utama pada tampilan Oracle?