Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle - w tym zakresie nie istnieje funkcja o nazwie X

błąd to messaget := testcursor.column1; ponieważ kursor jest do tego czasu zamknięty (powinieneś po prostu użyć testcursorrec.column2 .

Twój kod nie sprawdza, czy nie ma wierszy ani zduplikowanych wierszy. możesz to uprościć do

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie bez rozróżniania wielkości liter w Oracle

  2. Oracle - W pytaniu CLAUSE podczas używania z wieloma wartościami, dzięki czemu jest dynamiczny

  3. Jak zmienić nazwę węzła Oracle XMLTYPE?

  4. Łączenie dwóch tabel SQL

  5. Transpozycja i agregacja danych kolumn Oracle