Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sử dụng boolean trong PL / SQL

dbms_output.put_line không quá tải để chấp nhận một đối số boolean. Bạn có thể làm điều gì đó như

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

để chuyển đổi boolean thành một chuỗi mà sau đó bạn có thể chuyển tới dbms_output .

Lỗi ORA-01422 là một vấn đề hoàn toàn riêng biệt. Hàm checkEmpNo bao gồm SELECT INTO tuyên bố

SELECT emp_id 
  INTO emp_number
  FROM emp;

A SELECT INTO sẽ tạo ra lỗi nếu truy vấn trả về bất kỳ thứ gì khác ngoài 1 hàng. Trong trường hợp này, nếu có nhiều hàng trong emp bảng, bạn sẽ gặp lỗi. Tôi đoán là bạn muốn chức năng của mình hoạt động giống như

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. Làm cách nào để xóa các hàng có phụ thuộc hai hướng?

  2. Cách loại bỏ phần đệm bên phải cho tên ngày trong Oracle

  3. Hàm ATAN () trong Oracle

  4. Oracle trừ ngày và phút

  5. Lỗi không khớp Oracle.DataAccess