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

OracleStoredProcedureのinoutパラメータの問題-解決策があります-タイプミス

    いくつかの問題:

    1. VARHAR2 タイプミスがあり、VARCHAR2である必要があります 。
      • 代わりに、table_name.column_name%TYPEを使用して、対応するテーブル列を参照するデータ型を指定できます。 。
    2. プロシージャは何も出力しません-INの1つを変更する必要があります OUTへのパラメータ (またはIN OUT パラメータ)。
    3. クエリでテーブル名が指定されていません。
    4. SELECT ... INTO ...を使用できます CURSORではなく 。

    このようなもの:

    CREATE OR REPLACE PROCEDURE FIRSTPROC (
      ID1 IN  table_name.id1val%TYPE,
      ID2 OUT table_name.id2val%TYPE
    )
    AS
    BEGIN
      DBMS_OUTPUT.PUT_LINE(ID1);
      SELECT id2val
      INTO   ID2
      FROM   table_name
      WHERE  id1val = ID1;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        ID2 := 0; -- Or you could use NULL
      WHEN TOO_MANY_ROWS THEN
        ID2 := 0; -- Or you could use NULL
    END;
    /
    


    1. mysqlは外部結合を残しました

    2. MySQLのORDERBYorderDESC付近の構文エラー

    3. PostgreSQLの「groupby」クエリで文字列フィールドの文字列を連結するにはどうすればよいですか?

    4. MySQLでストアドプロシージャをスケジュールする方法