sql >> Databáze >  >> RDS >> Oracle

Proces PL/SQL:problém se zněním

Váš postup má několik problémů.

  1. Chybí vám CREATE klíčové slovo, a to je hlavní příčina chyby při kompilaci. PLS-00103 .

Další podrobnosti naleznete v dokumentaci k prohlášení CREATE PROCEDURE k vytvoření samostatné uložené procedury nebo specifikace volání.

  1. Deklarace datového typu pro parametr IN je nesprávná. Musíte to udělat jako:
EMP_USERNAME IN EMPLOYEE.EMP_USERNAME%TYPE
  1. Smyčka FOR LOOP je syntakticky nesprávná.

Můžete to udělat jako:

SQL> CREATE OR REPLACE
  2  PROCEDURE deploy_emp(
  3      i_emp emp.empno%type)
  4  IS
  5    emp_user VARCHAR2(50);
  6  BEGIN
  7    FOR indx IN
  8    (SELECT ename FROM emp
  9    )
 10    LOOP
 11      BEGIN
 12        BEGIN
 13          SELECT ename INTO emp_user FROM emp WHERE empno = i_emp;
 14        EXCEPTION
 15        WHEN NO_DATA_FOUND THEN
 16          emp_user := NULL;
 17        END;
 18      END;
 19    END LOOP;
 20    dbms_output.put_line(emp_user);
 21  END deploy_emp;
 22  /

Procedure created.

SQL> sho err
No errors.

Nyní to otestujeme a uvidíme:

SQL> set serveroutput on
SQL> EXEC deploy_emp(7369);
SMITH

PL/SQL procedure successfully completed.

SQL>


  1. Jak používat STRCMP() k porovnání 2 řetězců v MySQL

  2. Jak zkontrolovat, zda hodnota již existuje, aby se předešlo duplicitám?

  3. ClassNotFoundException:oracle.jdbc.OracleDriver

  4. 3 způsoby, jak zálohovat databázi SQLite