sql >> Database >  >> RDS >> Oracle

Gebruik van boolean in PL/SQL

dbms_output.put_line is niet overbelast om een ​​boolean argument te accepteren. Je kunt zoiets doen als

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

om de boolean om te zetten in een tekenreeks die u vervolgens kunt doorgeven aan dbms_output .

De ORA-01422-fout is een volledig apart probleem. De functie checkEmpNo bevat de SELECT INTO verklaring

SELECT emp_id 
  INTO emp_number
  FROM emp;

EEN SELECT INTO genereert een fout als de query iets anders retourneert dan 1 rij. In dit geval, als er meerdere rijen zijn in de emp tabel krijgt u een foutmelding. Ik vermoed dat je zou willen dat je functie zoiets doet als

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. MS Access Multi-Join-query

  2. Hoe schrijf je een tabel letterlijk in Oracle?

  3. Sorteer op dag van de week van maandag tot zondag

  4. SQL krijgt ROW_NUMBER en COUNT op elk SELECT-verzoek