PL/SQL 使用函数从 table 中读取行数据

PL/SQL Read Row Data From table from using Functions

嗨,我是 pl/sql 的新手,我在从我的 table 获取 return 数据时遇到问题,我不知道该怎么做处理我在浏览网页时尝试过的所有建议,但无法理解它们来解决我的问题

我创建的函数接受一个 ID 参数,该参数用于 return 匹配此参数的学生姓名。

CREATE OR REPLACE function getName(ID in INTEGER)
    RETURN varchar2
    IS id_name varchar2(25);
    BEGIN
    SELECT NAME INTO id_name from student
    where ID = getName.ID;
    RETURN (id_name);
    END;

该函数编译没有任何问题,但是当我尝试 运行 具有 ID 值的函数时,我知道是学生 table,如下所示:

BEGIN
getName(2020001);
END;

我收到一条 pls-00103 错误消息,我不知道该怎么做才能获得从学生那里读取数据的功能table我创建了任何帮助将不胜感激

如果要调用 PL/SQL 中的函数,通常需要声明一个变量来存储 return 值。你可能想对结果做一些事情,即使它只是使用 dbms_output 来(可能)将它写入控制台

declare
  l_name student.name%type;
begin
  l_name := getName(2020001);
  dbms_output.put_line( 'The name is : ' || l_name );
end;
/

或者您可以在 SQL 语句中使用函数

select getName(2020001)
  from dual