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

Oracle-このスコープにはXという名前の関数は存在しません

    エラーはmessaget := testcursor.column1;になります それまでにカーソルが閉じているため(testcursorrec.column2を使用する必要があります) 。

    あなたのコードは行がないか、行が重複していないかをチェックしていません。これを単純化して

    create or replace function testfunction
      (
        somevalue in table1.column1%type
      )
      return table1.column2%type
      AS
      messaget table1.column2%type; -- use %type where possible.
      begin
        select t.column2
          into messaget
          from table1 t
         where t.column1 = somevalue
           and rownum = 1;--only if you dont care if theres 2+ rows. 
        return messaget;
      exception 
        when no_data_found
        then 
          return null; -- if you want to ignore no rows.
      end;
    



    1. MYSQLからMYSQLIへの更新

    2. MySqlは、ある行から別の行に値をコピーします

    3. Flask、Connexion、SQLAlchemyを使用したPython REST API –パート2

    4. SQL-結果がない日付の入力