sql >> データベース >  >> RDS >> Oracle

PL / SQLプロセス:文言の問題

    手順には複数の問題があります。

    1. CREATEがありません キーワードであり、それがコンパイル時エラーの根本的な原因です。 PLS-00103

    CREATE PROCEDUREステートメント> スタンドアロンのストアドプロシージャまたは呼び出し仕様を作成します。

    1. INパラメータのデータ型宣言が正しくありません。次のようにする必要があります:
    EMP_USERNAME IN EMPLOYEE.EMP_USERNAME%TYPE
    1. FORLOOPは構文的に正しくありません。

    あなたはそれを次のように行うことができます:

    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.
    

    それでは、テストして見てみましょう:

    SQL> set serveroutput on
    SQL> EXEC deploy_emp(7369);
    SMITH
    
    PL/SQL procedure successfully completed.
    
    SQL>
    


    1. MySQLでシード値を手動で1000に設定する方法

    2. HibernateマッピングファイルでSerializableBlobタイプを表現する方法

    3. このSQLに増分値を組み込む

    4. 列の日付を自動的にキャストして、タイムゾーンdjango/postgresでタイムスタンプを入力することはできません