sql >> Database >  >> RDS >> Oracle

Oracle - er bestaat geen functie met naam X in dit bereik

de fout zou zijn messaget := testcursor.column1; aangezien de cursor dan gesloten is (je moet gewoon testcursorrec.column2 gebruiken .

uw code controleert niet op rijen, noch op dubbele rijen. je kunt dit vereenvoudigen tot

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. Ingesloten MySQL Server C# Wrapper?

  2. lees/schrijf unicode-gegevens in MySql

  3. Somtotaal van meerdere MySQL-kolommen opgeslagen in een andere kolom?

  4. mysqldump volledige structuur maar alleen gegevens uit geselecteerde tabellen in één opdracht