Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle - tidak ada fungsi dengan nama X dalam lingkup ini

kesalahannya adalah messaget := testcursor.column1; saat kursor ditutup saat itu (Anda harus menggunakan testcursorrec.column2 .

kode Anda tidak memeriksa tidak ada baris, atau menduplikasi baris. Anda dapat menyederhanakannya menjadi

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. CHR(0) dalam REGEXP_LIKE

  2. Menggunakan konstanta yang dapat dibaca manusia dalam kueri

  3. Penyedia Oracle Pihak Ketiga untuk .Net dengan dukungan tipe objek

  4. Oracle getConnection lambat

  5. Perbedaan antara WITH klausa dan subquery?